<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>arduino-audio-driver: src/Driver.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">arduino-audio-driver
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">Driver.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_driver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160; </div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_common_8h.html">Common.h</a>&quot;</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;Driver/ac101/ac101.h&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;Driver/ad1938/ad1938.h&quot;</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;Driver/cs42448/cs42448.h&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;Driver/cs43l22/cs43l22.h&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;Driver/es7210/es7210.h&quot;</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &quot;Driver/es7243/es7243.h&quot;</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &quot;Driver/es7243e/es7243e.h&quot;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &quot;Driver/es8156/es8156.h&quot;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;Driver/es8311/es8311.h&quot;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &quot;Driver/es8374/es8374.h&quot;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;Driver/es8388/es8388.h&quot;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &quot;Driver/tas5805m/tas5805m.h&quot;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &quot;Driver/wm8960/mtb_wm8960.h&quot;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;Driver/wm8994/wm8994.h&quot;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;Driver/wm8978/WM8978.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_driver_pins_8h.html">DriverPins.h</a>&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceaudio__driver.html">audio_driver</a> {</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="namespaceaudio__driver.html#aee6eec1204925f0dfc2228bda0533d2f">   23</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="namespaceaudio__driver.html#aee6eec1204925f0dfc2228bda0533d2f">rate_num</a>[14] = {8000,  11025, 16000, 22050, 24000,  32000,  44100,</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;                          48000, 64000, 88200, 96000, 128000, 176400, 192000};</div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="namespaceaudio__driver.html#a57ed9a91c0a184e4d8669f70d4cfb953">   25</a></span>&#160;<span class="keyword">const</span> <a class="code" href="group__enumerations.html#ga9455c9aa894b64d5d3997a038141991b">samplerate_t</a> <a class="code" href="namespaceaudio__driver.html#a57ed9a91c0a184e4d8669f70d4cfb953">rate_code</a>[14] = {</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba6c34cf487fbecbdb9c7282a24e338cb2">RATE_8K</a>,  <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991baccef6e39d6855b77e2ec01e10095ea6b">RATE_11K</a>, <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991bae713f819f76ea57722e5a1296fd77cf0">RATE_16K</a>, <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba48d81c4b3d3c47c2edaf53287a74440f">RATE_22K</a>, <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba3f394c7023481136a11456f4d6fd7674">RATE_24K</a>,  <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991bab22cf724e3c3bb37888df8870cc6f60b">RATE_32K</a>,  <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba1448cc64c77cf916c8d7f735c6374b37">RATE_44K</a>,</div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991baf72a585e7262a1b6a49e268f3672987d">RATE_48K</a>, <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991baceb52239e4a6b2fcc88cb4851e7d31c6">RATE_64K</a>, <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba91943b4ef802c7ff3aa4f4948870472c">RATE_88K</a>, <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991bac23375dadba2f10d3166fc98207dcd0c">RATE_96K</a>, <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba635120f9ee8f66a9d42c4b3f5e2cf348">RATE_128K</a>, <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991baaf2afb3b8f1a2bd2b6487e7faf89e4ff">RATE_176K</a>, <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991bafa3a6c59d2bc607e34859a0afaf08707">RATE_192K</a>};</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_codec_config.html">   36</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> : <span class="keyword">public</span> <a class="code" href="structcodec__config__t.html">codec_config_t</a> {</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_codec_config.html#a0eced3855f21d967d42b4c399338d3bf">   39</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_codec_config.html#a0eced3855f21d967d42b4c399338d3bf">CodecConfig</a>() {</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> = <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50ac054fb9ae14a618d0425ded7f7f17bed">ADC_INPUT_LINE1</a>;</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <a class="code" href="structcodec__config__t.html#a53991a860287c34f4e412af745d4bb66">output_device</a> = <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264a9f3f48105f92c53bfcc4d9546f666c43">DAC_OUTPUT_ALL</a>;</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#adeb4d7cae3090eef02034eec5efcb122">bits</a> = <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926dae4d6b453890e812628bfbf9a28936377">BIT_LENGTH_16BITS</a>;</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a2ae50aca3292f8f72fa1afe1269bb8c4">rate</a> = <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba1448cc64c77cf916c8d7f735c6374b37">RATE_44K</a>;</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#ab5a0ee7843e4a3097806c3a4344944cd">channels</a> = <a class="code" href="_common_8h.html#gaac50a1392dd0aa905500c755148c556babdc5dee704be4efd4e644f493f962dff">CHANNELS2</a>;</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a0a84595d973f46fb7cd70746e8d87cbb">fmt</a> = <a class="code" href="_common_8h.html#gad4b0ae616e0ce2bdb666f8e75ab686b2afe1e487005429f74e5cd4d2320db823a">I2S_NORMAL</a>;</div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="comment">// codec is slave - microcontroller is master</span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a58b259b6331a0efa228683b513190b4d">mode</a> = <a class="code" href="_common_8h.html#gadebb589e2ab53e2443229481d9047b47a56670f46c5fa5bad99f7205d77a978e1">MODE_SLAVE</a>;</div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;  }</div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_codec_config.html#af79a2494e2c27af3418daf7ee490c413">   51</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_codec_config.html#af79a2494e2c27af3418daf7ee490c413">equalsExRate</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> alt) {</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordflow">return</span> (<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> == alt.<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> &amp;&amp;</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;            <a class="code" href="structcodec__config__t.html#a53991a860287c34f4e412af745d4bb66">output_device</a> == alt.<a class="code" href="structcodec__config__t.html#a53991a860287c34f4e412af745d4bb66">output_device</a> &amp;&amp; <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#adeb4d7cae3090eef02034eec5efcb122">bits</a> == alt.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#adeb4d7cae3090eef02034eec5efcb122">bits</a> &amp;&amp;</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;            <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#ab5a0ee7843e4a3097806c3a4344944cd">channels</a> == alt.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#ab5a0ee7843e4a3097806c3a4344944cd">channels</a> &amp;&amp; <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a0a84595d973f46fb7cd70746e8d87cbb">fmt</a> == alt.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a0a84595d973f46fb7cd70746e8d87cbb">fmt</a> &amp;&amp;</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;            <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a58b259b6331a0efa228683b513190b4d">mode</a> == alt.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a58b259b6331a0efa228683b513190b4d">mode</a>);</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;  }</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_codec_config.html#afb4dc267068aaa494327923fecec6b41">   59</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_codec_config.html#afb4dc267068aaa494327923fecec6b41">getBitsNumeric</a>() {</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keywordflow">switch</span> (<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#adeb4d7cae3090eef02034eec5efcb122">bits</a>) {</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926dae4d6b453890e812628bfbf9a28936377">BIT_LENGTH_16BITS</a>:</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        <span class="keywordflow">return</span> 16;</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da1c0af9f48a2f6584dac0bee687d1669b">BIT_LENGTH_24BITS</a>:</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <span class="keywordflow">return</span> 24;</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da8f86f61920588df6362bc116369f4e02">BIT_LENGTH_32BITS</a>:</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keywordflow">return</span> 32;</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;      <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    }</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  }</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_codec_config.html#a2cf0779e606be31b752e7cec8c184a9e">   74</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_codec_config.html#a2cf0779e606be31b752e7cec8c184a9e">setBitsNumeric</a>(<span class="keywordtype">int</span> bits) {</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keywordflow">switch</span> (bits) {</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;      <span class="keywordflow">case</span> 16:</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#adeb4d7cae3090eef02034eec5efcb122">bits</a> = <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926dae4d6b453890e812628bfbf9a28936377">BIT_LENGTH_16BITS</a>;</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;      <span class="keywordflow">case</span> 18:</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#adeb4d7cae3090eef02034eec5efcb122">bits</a> = <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da5ce8847b699a432cbd497d74d3fd3177">BIT_LENGTH_18BITS</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;      <span class="keywordflow">case</span> 20:</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#adeb4d7cae3090eef02034eec5efcb122">bits</a> = <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da6047cb713c098c82af0f232dbbaf57f5">BIT_LENGTH_20BITS</a>;</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;      <span class="keywordflow">case</span> 24:</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#adeb4d7cae3090eef02034eec5efcb122">bits</a> = <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da1c0af9f48a2f6584dac0bee687d1669b">BIT_LENGTH_24BITS</a>;</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;      <span class="keywordflow">case</span> 32:</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#adeb4d7cae3090eef02034eec5efcb122">bits</a> = <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da8f86f61920588df6362bc116369f4e02">BIT_LENGTH_32BITS</a>;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    }</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;  }</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_codec_config.html#a5a8e72d47263001aff56c9f4aa976fa4">   96</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_codec_config.html#a5a8e72d47263001aff56c9f4aa976fa4">getRateNumeric</a>() {</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; 14; j++) {</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;      <span class="keywordflow">if</span> (<a class="code" href="namespaceaudio__driver.html#a57ed9a91c0a184e4d8669f70d4cfb953">rate_code</a>[j] == <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a2ae50aca3292f8f72fa1afe1269bb8c4">rate</a>) {</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;-&gt; %d&quot;</span>, <a class="code" href="namespaceaudio__driver.html#aee6eec1204925f0dfc2228bda0533d2f">rate_num</a>[j]);</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="namespaceaudio__driver.html#aee6eec1204925f0dfc2228bda0533d2f">rate_num</a>[j];</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;      }</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    }</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;  }</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_codec_config.html#ab1fb25acae6f8d20d0fd2243fdf731ab">  107</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_codec_config.html#ab1fb25acae6f8d20d0fd2243fdf731ab">getChannelsNumeric</a>() { <span class="keywordflow">return</span> <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#ab5a0ee7843e4a3097806c3a4344944cd">channels</a>; }</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_codec_config.html#a3c32c7aaa80dc2060c20dfcf11ba7204">  110</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_codec_config.html#a3c32c7aaa80dc2060c20dfcf11ba7204">setChannelsNumeric</a>(<span class="keywordtype">int</span> channels) {</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordflow">switch</span> (2) {</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#gaac50a1392dd0aa905500c755148c556babdc5dee704be4efd4e644f493f962dff">CHANNELS2</a>:</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#ab5a0ee7843e4a3097806c3a4344944cd">channels</a> = (<a class="code" href="group__enumerations.html#gaac50a1392dd0aa905500c755148c556b">channels_t</a>)channels;</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#gaac50a1392dd0aa905500c755148c556bacdf4043f56ef6e3313f72a483587ebc7">CHANNELS8</a>:</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#ab5a0ee7843e4a3097806c3a4344944cd">channels</a> = (<a class="code" href="group__enumerations.html#gaac50a1392dd0aa905500c755148c556b">channels_t</a>)channels;</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#gaac50a1392dd0aa905500c755148c556bac42e75839720fb3fa179d1c1e73f3324">CHANNELS16</a>:</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#ab5a0ee7843e4a3097806c3a4344944cd">channels</a> = (<a class="code" href="group__enumerations.html#gaac50a1392dd0aa905500c755148c556b">channels_t</a>)channels;</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;      <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#ab5a0ee7843e4a3097806c3a4344944cd">channels</a> = <a class="code" href="_common_8h.html#gaac50a1392dd0aa905500c755148c556babdc5dee704be4efd4e644f493f962dff">CHANNELS2</a>;</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    }</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;  }</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_codec_config.html#af946880eb3f7403e06e3d1646acdad27">  128</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_codec_config.html#af946880eb3f7403e06e3d1646acdad27">setRateNumeric</a>(<span class="keywordtype">int</span> requestedRate) {</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <span class="keywordtype">int</span> diff = 99999;</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">int</span> result = 0;</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; 14; j++) {</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;      <span class="keywordflow">if</span> (<a class="code" href="namespaceaudio__driver.html#aee6eec1204925f0dfc2228bda0533d2f">rate_num</a>[j] == requestedRate) {</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;-&gt; %d&quot;</span>, <a class="code" href="namespaceaudio__driver.html#aee6eec1204925f0dfc2228bda0533d2f">rate_num</a>[j]);</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a2ae50aca3292f8f72fa1afe1269bb8c4">rate</a> = <a class="code" href="namespaceaudio__driver.html#a57ed9a91c0a184e4d8669f70d4cfb953">rate_code</a>[j];</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        <span class="keywordflow">return</span> requestedRate;</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;      } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <span class="keywordtype">int</span> new_diff = abs(<a class="code" href="namespaceaudio__driver.html#a57ed9a91c0a184e4d8669f70d4cfb953">rate_code</a>[j] - requestedRate);</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="keywordflow">if</span> (new_diff &lt; diff) {</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;          result = j;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;          diff = new_diff;</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        }</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;      }</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    }</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;Sample Rate not supported: %d - using %d&quot;</span>, requestedRate,</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;            <a class="code" href="namespaceaudio__driver.html#aee6eec1204925f0dfc2228bda0533d2f">rate_num</a>[result]);</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a2ae50aca3292f8f72fa1afe1269bb8c4">rate</a> = <a class="code" href="namespaceaudio__driver.html#a57ed9a91c0a184e4d8669f70d4cfb953">rate_code</a>[result];</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespaceaudio__driver.html#aee6eec1204925f0dfc2228bda0533d2f">rate_num</a>[result];</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;  }</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_codec_config.html#a8fa9926c8f49782f025aa24180d4ca33">  151</a></span>&#160;  <a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> <a class="code" href="classaudio__driver_1_1_codec_config.html#a8fa9926c8f49782f025aa24180d4ca33">get_mode</a>() {</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="comment">// codec_mode_t mode;</span></div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">bool</span> is_input = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordtype">bool</span> is_output = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> != <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50a8fe55a6d1ba4245831483d4f3f3763ec">ADC_INPUT_NONE</a>) is_input = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="structcodec__config__t.html#a53991a860287c34f4e412af745d4bb66">output_device</a> != <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ab839e055e11786256cd328d1b754a190">DAC_OUTPUT_NONE</a>) is_output = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordflow">if</span> (is_input &amp;&amp; is_output) {</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;      <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;mode-&gt;CODEC_MODE_BOTH&quot;</span>);</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="_common_8h.html#ga767db1c20919e0b4bcbf95cf741042f8ab248669049fb7b52e3d2856c4cd5aa62">CODEC_MODE_BOTH</a>;</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    }</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="keywordflow">if</span> (is_output) {</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;      <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;mode-&gt;CODEC_MODE_DECODE&quot;</span>);</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="_common_8h.html#ga767db1c20919e0b4bcbf95cf741042f8ac9c194b132e75e388d62e4b81b8b7ed3">CODEC_MODE_DECODE</a>;</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    }</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; </div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordflow">if</span> (is_input) {</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;      <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;mode-&gt;CODEC_MODE_ENCODE&quot;</span>);</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;      <span class="keywordflow">return</span> <a class="code" href="_common_8h.html#ga767db1c20919e0b4bcbf95cf741042f8a348014ecbf51d251b388a237fccf3c8a">CODEC_MODE_ENCODE</a>;</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    }</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;mode-&gt;CODEC_MODE_NONE&quot;</span>);</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="_common_8h.html#ga767db1c20919e0b4bcbf95cf741042f8a6349277a4d314615383d79d7338b5c90">CODEC_MODE_NONE</a>;</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;  }</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;  <span class="comment">// if sd active we setup SPI for the SD</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_codec_config.html#ac585b3449d271276f8b679e8ab01b2ec">  179</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_codec_config.html#ac585b3449d271276f8b679e8ab01b2ec">sd_active</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;};</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html">  188</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a2082348800b00b641ee937bc99c58e2a">  190</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a2082348800b00b641ee937bc99c58e2a">begin</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg, <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>) {</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;AudioDriver::begin:pins&quot;</span>);</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a> = &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>;</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;AudioDriver::begin:setSPI&quot;</span>);</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>.<a class="code" href="classaudio__driver_1_1_driver_pins.html#ac657931b192113cc4f0dfa5854dd2f84">setSPIActiveForSD</a>(codecCfg.<a class="code" href="classaudio__driver_1_1_codec_config.html#ac585b3449d271276f8b679e8ab01b2ec">sd_active</a>);</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;AudioDriver::begin:setConfig&quot;</span>);</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keywordtype">int</span> result = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a6442182dfc4c54fb16b002b6f15c86e4">setConfig</a>(codecCfg);</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;AudioDriver::begin:setPAPower&quot;</span>);</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a1b3ee72f65915dcb4c875835d6e08aa1">setPAPower</a>(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;AudioDriver::begin:completed&quot;</span>);</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <span class="comment">// setup default volume</span></div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a43d1eddbaad3e8e0f25004acb9c29efc">setVolume</a>(<a class="code" href="_audio_driver_config_8h.html#a2513e2bd0eb45a0ccefbbcd3f289ca47">DRIVER_DEFAULT_VOLUME</a>);</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;  }</div>
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a6442182dfc4c54fb16b002b6f15c86e4">  204</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a6442182dfc4c54fb16b002b6f15c86e4">setConfig</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg) {</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a> = codecCfg;</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="keywordflow">if</span> (!<a class="code" href="classaudio__driver_1_1_audio_driver.html#af1579002eac8e19fe157965f55c7e24e">init</a>(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>)) {</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;      <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;AudioDriver::begin::init failed&quot;</span>);</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;      <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;AudioDriver::begin::init succeeded&quot;</span>);</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    }</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> codec_mode = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="classaudio__driver_1_1_codec_config.html#a8fa9926c8f49782f025aa24180d4ca33">get_mode</a>();</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <span class="keywordflow">if</span> (!<a class="code" href="classaudio__driver_1_1_audio_driver.html#aa6ef5ff45c46acc972bcf6686a7ae9eb">controlState</a>(codec_mode)) {</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;      <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;AudioDriver::begin::controlState failed&quot;</span>);</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;      <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;AudioDriver::begin::controlState succeeded&quot;</span>);</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    }</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keywordtype">bool</span> result = <a class="code" href="classaudio__driver_1_1_audio_driver.html#af6fd872d4389b2d098ef7657ee3251ff">configInterface</a>(codec_mode, <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>);</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keywordflow">if</span> (!result) {</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;      <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;AudioDriver::begin::configInterface failed&quot;</span>);</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;      <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;AudioDriver::begin::configInterface succeeded&quot;</span>);</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    }</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;  }</div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a063cb6038676fcc58f5a7cbc93ef27f1">  228</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a063cb6038676fcc58f5a7cbc93ef27f1">end</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a5e9dd2cbb2377c5ac866a5ccc26ff497">deinit</a>(); }</div>
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a0065b12757039a60467b6b12ccefc4ba">  229</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a0065b12757039a60467b6b12ccefc4ba">setMute</a>(<span class="keywordtype">bool</span> enable) = 0;</div>
<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a4c34b96573571f4fc5b12099a9d04e5b">  231</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4c34b96573571f4fc5b12099a9d04e5b">setMute</a>(<span class="keywordtype">bool</span> mute, <span class="keywordtype">int</span> line) {</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;setMute not supported on line level&quot;</span>);</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;  }</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a43d1eddbaad3e8e0f25004acb9c29efc">  237</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a43d1eddbaad3e8e0f25004acb9c29efc">setVolume</a>(<span class="keywordtype">int</span> volume) = 0;</div>
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#aaf041a73009a07b13117c75c1d09f00c">  238</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#aaf041a73009a07b13117c75c1d09f00c">getVolume</a>() = 0;</div>
<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a11bf855250acaa1afbe0b8251660800d">  239</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a11bf855250acaa1afbe0b8251660800d">setInputVolume</a>(<span class="keywordtype">int</span> volume) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a22d2adeb316a5705b57114d4a5761017">  240</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a22d2adeb316a5705b57114d4a5761017">isVolumeSupported</a>() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a02060cfd35162a9112de61ebc3d5b974">  241</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a02060cfd35162a9112de61ebc3d5b974">isInputVolumeSupported</a>() { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; </div>
<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">  243</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>() { <span class="keywordflow">return</span> *<a class="code" href="classaudio__driver_1_1_audio_driver.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a>; }</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160; </div>
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a1b3ee72f65915dcb4c875835d6e08aa1">  246</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a1b3ee72f65915dcb4c875835d6e08aa1">setPAPower</a>(<span class="keywordtype">bool</span> enable) {</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <a class="code" href="namespaceaudio__driver.html#a4c343c4d8992a509dce6cff41726322a">GpioPin</a> pin = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>().<a class="code" href="classaudio__driver_1_1_driver_pins.html#a1bec8cca54681dc1e21f9a5281642dc7">getPinID</a>(<a class="code" href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafa06f6a489209115c5cef3f45036aad3ec">PinFunction::PA</a>);</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    <span class="keywordflow">if</span> (pin == -1) {</div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    }</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <a class="code" href="_logger_8c.html#ada3b7c7d836d0f21f2bd2f945c997294">AD_LOGI</a>(<span class="stringliteral">&quot;setPAPower pin %d -&gt; %d&quot;</span>, pin, enable);</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <a class="code" href="etc_8h.html#afb6322a0aff6851765ab32bfaa5080d6">digitalWrite</a>(pin, enable ? <a class="code" href="etc_8h.html#a5bb885982ff66a2e0a0a45a8ee9c35e2">HIGH</a> : <a class="code" href="etc_8h.html#ab811d8c6ff3a505312d3276590444289">LOW</a>);</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;  }</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160; </div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">  257</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>;</div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#aed163ec96131f32e2b3316974a2bd9bc">  258</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> *<a class="code" href="classaudio__driver_1_1_audio_driver.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">  261</a></span>&#160;  TwoWire *<a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>() {</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classaudio__driver_1_1_audio_driver.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a> == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span> &amp;Wire;</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="keyword">auto</span> i2c = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>().<a class="code" href="classaudio__driver_1_1_driver_pins.html#a052842a7d29e1b90185c1d57fc16f5d2">getI2CPins</a>(<a class="code" href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafa472015a17943a0dd74293f32ce088542">PinFunction::CODEC</a>);</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keywordflow">if</span> (!i2c) {</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;      <span class="keywordflow">return</span> &amp;Wire;</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    }</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <span class="keywordflow">return</span> i2c.value().p_wire;</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;  }</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160; </div>
<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a5913823f39bb4c4d7078b0e1a9cb0775">  270</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a5913823f39bb4c4d7078b0e1a9cb0775">getI2CAddress</a>() {</div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classaudio__driver_1_1_audio_driver.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a> == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    <span class="keyword">auto</span> i2c = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>().<a class="code" href="classaudio__driver_1_1_driver_pins.html#a052842a7d29e1b90185c1d57fc16f5d2">getI2CPins</a>(<a class="code" href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafa472015a17943a0dd74293f32ce088542">PinFunction::CODEC</a>);</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    <span class="keywordflow">if</span> (i2c) {</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;      <span class="keywordflow">return</span> i2c.value().port;</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    }</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;  }</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160; </div>
<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#af1579002eac8e19fe157965f55c7e24e">  279</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#af1579002eac8e19fe157965f55c7e24e">init</a>(<a class="code" href="structcodec__config__t.html">codec_config_t</a> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a5e9dd2cbb2377c5ac866a5ccc26ff497">  280</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a5e9dd2cbb2377c5ac866a5ccc26ff497">deinit</a>() { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#aa6ef5ff45c46acc972bcf6686a7ae9eb">  281</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#aa6ef5ff45c46acc972bcf6686a7ae9eb">controlState</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode) { <span class="keywordflow">return</span> <span class="keyword">false</span>; };</div>
<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#af6fd872d4389b2d098ef7657ee3251ff">  282</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#af6fd872d4389b2d098ef7657ee3251ff">configInterface</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode, <a class="code" href="struct_i2_s_definition.html">I2SDefinition</a> iface) {</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;  };</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160; </div>
<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">  289</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(<span class="keywordtype">int</span> volume, <span class="keywordtype">int</span> min = 0, <span class="keywordtype">int</span> max = 100) {</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <span class="keywordflow">if</span> (volume &gt; max) volume = max;</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <span class="keywordflow">if</span> (volume &lt; min) volume = min;</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="keywordflow">return</span> volume;</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;  }</div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;};</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160; </div>
<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_no_driver_class.html">  302</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_no_driver_class.html">NoDriverClass</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_no_driver_class.html#a2082348800b00b641ee937bc99c58e2a">  304</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_no_driver_class.html#a2082348800b00b641ee937bc99c58e2a">begin</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg, <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>) {</div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a> = codecCfg;</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a> = &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>;</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;  }</div>
<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_no_driver_class.html#a063cb6038676fcc58f5a7cbc93ef27f1">  309</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_no_driver_class.html#a063cb6038676fcc58f5a7cbc93ef27f1">end</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_no_driver_class.html#acdfff622d0b4f02de1468ae00328db63">  310</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_no_driver_class.html#acdfff622d0b4f02de1468ae00328db63">setMute</a>(<span class="keywordtype">bool</span> enable) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_no_driver_class.html#aef034748ed271241848a3c877a39426e">  311</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_no_driver_class.html#aef034748ed271241848a3c877a39426e">setVolume</a>(<span class="keywordtype">int</span> volume) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_no_driver_class.html#a2d9800f7ac8e11f28829d83068fb1028">  312</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_no_driver_class.html#a2d9800f7ac8e11f28829d83068fb1028">getVolume</a>() { <span class="keywordflow">return</span> 100; }</div>
<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_no_driver_class.html#a11bf855250acaa1afbe0b8251660800d">  313</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_no_driver_class.html#a11bf855250acaa1afbe0b8251660800d">setInputVolume</a>(<span class="keywordtype">int</span> volume) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_no_driver_class.html#a22d2adeb316a5705b57114d4a5761017">  314</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_no_driver_class.html#a22d2adeb316a5705b57114d4a5761017">isVolumeSupported</a>() {</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;  }</div>
<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_no_driver_class.html#a02060cfd35162a9112de61ebc3d5b974">  317</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_no_driver_class.html#a02060cfd35162a9112de61ebc3d5b974">isInputVolumeSupported</a>() { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;};</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160; </div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_c101_class.html">  325</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_a_c101_class.html">AudioDriverAC101Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">  327</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(<span class="keywordtype">bool</span> mute) { <span class="keywordflow">return</span> ac101_set_voice_mute(mute); }</div>
<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">  328</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> volume) {</div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="keywordflow">return</span> ac101_set_voice_volume(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(volume));</div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;  };</div>
<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#aac9746ddc550ec176b0957affafbdbe7">  331</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() {</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    <span class="keywordtype">int</span> vol;</div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    ac101_get_voice_volume(&amp;vol);</div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <span class="keywordflow">return</span> vol;</div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;  };</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160; </div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#a52e4f3e14150fab743955aa7fb4a6af6">  338</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#a52e4f3e14150fab743955aa7fb4a6af6">init</a>(<a class="code" href="structcodec__config__t.html">codec_config_t</a> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>) {</div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    <span class="keywordflow">return</span> ac101_init(&amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>(), <a class="code" href="classaudio__driver_1_1_audio_driver.html#a5913823f39bb4c4d7078b0e1a9cb0775">getI2CAddress</a>()) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;  }</div>
<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#a5117a0a714bc6ffce07a792ca2b5c872">  341</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#a5117a0a714bc6ffce07a792ca2b5c872">deinit</a>() { <span class="keywordflow">return</span> ac101_deinit() == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">  342</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">controlState</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode) {</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;    <span class="keywordflow">return</span> ac101_ctrl_state_active(mode, <span class="keyword">true</span>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;  }</div>
<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">  345</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_c101_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">configInterface</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode, <a class="code" href="struct_i2_s_definition.html">I2SDefinition</a> iface) {</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    <span class="keywordflow">return</span> ac101_config_i2s(mode, &amp;iface) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;  }</div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;};</div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160; </div>
<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html">  355</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html">AudioDriverAD1938Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#ac449de25c72e7a8fbbcbf0bf6a8132ba">  357</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#ac449de25c72e7a8fbbcbf0bf6a8132ba">begin</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg, <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    <span class="keywordtype">int</span> clatch = <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>.<a class="code" href="classaudio__driver_1_1_driver_pins.html#a1bec8cca54681dc1e21f9a5281642dc7">getPinID</a>(<a class="code" href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafab6e3c1cdb5c43961a2e081ef2564ba2e">PinFunction::LATCH</a>);</div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;    <span class="keywordflow">if</span> (clatch &lt; 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    <span class="keywordtype">int</span> reset = <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>.<a class="code" href="classaudio__driver_1_1_driver_pins.html#a1bec8cca54681dc1e21f9a5281642dc7">getPinID</a>(<a class="code" href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafab5859d8721cfdc0312b2838b9c985bc1">PinFunction::RESET</a>);</div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    <span class="keywordflow">if</span> (reset &lt; 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    <span class="keyword">auto</span> spi_opt = <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>.<a class="code" href="classaudio__driver_1_1_driver_pins.html#a8dbb11da0473a677756920d373d2068f">getSPIPins</a>(<a class="code" href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafa472015a17943a0dd74293f32ce088542">PinFunction::CODEC</a>);</div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    SPIClass *p_spi = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <span class="keywordflow">if</span> (spi_opt) {</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;      p_spi = spi_opt.value().p_spi;</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;      p_spi = &amp;SPI;</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;      p_spi-&gt;begin();</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    }</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    <span class="comment">// setup pins</span></div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>.<a class="code" href="classaudio__driver_1_1_driver_pins.html#a50f45551c10ca30a0bc7f447e70188b1">begin</a>();</div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    <span class="comment">// setup ad1938</span></div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">ad1938</a>.begin(codecCfg, clatch, reset, *p_spi);</div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">ad1938</a>.enable();</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">ad1938</a>.setMute(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;  }</div>
<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a6442182dfc4c54fb16b002b6f15c86e4">  378</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a6442182dfc4c54fb16b002b6f15c86e4">setConfig</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg) {</div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    <span class="keywordtype">bool</span> result = <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#ac449de25c72e7a8fbbcbf0bf6a8132ba">begin</a>(codecCfg, *<a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a>);</div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;  }</div>
<div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aba72f3c7e37f01ac993d5c425dafc0f2">  382</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aba72f3c7e37f01ac993d5c425dafc0f2">end</a>(<span class="keywordtype">void</span>)<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">ad1938</a>.end(); }</div>
<div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a3e7b3b9da454d773e945e4053f6e2b75">  383</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a3e7b3b9da454d773e945e4053f6e2b75">setMute</a>(<span class="keywordtype">bool</span> mute)<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">ad1938</a>.setMute(mute); }</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;  <span class="comment">// mutes an individual DAC: valid range (0:3)</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a59ea4d70e5093706baadc42b6854b6ab">  385</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a59ea4d70e5093706baadc42b6854b6ab">setMute</a>(<span class="keywordtype">bool</span> mute, <span class="keywordtype">int</span> line) {</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    <span class="keywordflow">if</span> (line &gt; 3) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">ad1938</a>.setVolumeDAC(</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;        line, mute ? 0.0 : (<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(<a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a41fd7cb715f8b7181f922885fad96c78">volumes</a>[line]) / 100.0f));</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;  }</div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; </div>
<div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">  392</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">setVolume</a>(<span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    this-&gt;volume = <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>;</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j &lt; 8; j++) {</div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;      <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a41fd7cb715f8b7181f922885fad96c78">volumes</a>[j] = <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>;</div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    }</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">ad1938</a>.setVolume(<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(<a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>) / 100.0f);</div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;  }</div>
<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#acbd95c2e119e985187376bafee363fcf">  401</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#acbd95c2e119e985187376bafee363fcf">setVolume</a>(<span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>, <span class="keywordtype">int</span> line) {</div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    <span class="keywordflow">if</span> (line &gt; 7) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a41fd7cb715f8b7181f922885fad96c78">volumes</a>[line] = <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>;</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">ad1938</a>.setVolumeDAC(<span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span>(<a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>) / 100.0f, line);</div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;  }</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160; </div>
<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a016f575b7c0ff5b13cb1b907f66de665">  407</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a016f575b7c0ff5b13cb1b907f66de665">getVolume</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>; }</div>
<div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#ad3455849766196a8ab522b2da63a05d8">  408</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#ad3455849766196a8ab522b2da63a05d8">setInputVolume</a>(<span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>)<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a4510f634312ee31f499f25c2a02b8b39">  409</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a4510f634312ee31f499f25c2a02b8b39">isVolumeSupported</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a35ee14e345e291f347cb25380989aad9">  410</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a35ee14e345e291f347cb25380989aad9">isInputVolumeSupported</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160; </div>
<div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a42db9a98715e0b6383cd493d5ca06a8e">  412</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>() { <span class="keywordflow">return</span> *<a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a>; }</div>
<div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a7a0a89d5e4591ae7606b271c64998d0f">  413</a></span>&#160;  AD1938 &amp;<a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a7a0a89d5e4591ae7606b271c64998d0f">driver</a>() { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">ad1938</a>; }</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160; </div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">  416</a></span>&#160;  AD1938 <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">ad1938</a>;</div>
<div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed163ec96131f32e2b3316974a2bd9bc">  417</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> *<a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">  418</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a> = 100;</div>
<div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a41fd7cb715f8b7181f922885fad96c78">  419</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a41fd7cb715f8b7181f922885fad96c78">volumes</a>[8] = {100};</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;};</div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160; </div>
<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html">  427</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html">AudioDriverCS43l22Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#afd19e4a8c555c82d057b2749f2f15ed4">  429</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#afd19e4a8c555c82d057b2749f2f15ed4">AudioDriverCS43l22Class</a>(uint16_t <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a> = 0x4A) {</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    this-&gt;<a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a> = <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>;</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;  }</div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160; </div>
<div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aa77bc0dbb16edbab31209efca6d609ac">  433</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aa77bc0dbb16edbab31209efca6d609ac">setI2CAddress</a>(uint16_t adr) { <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a> = adr; }</div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160; </div>
<div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a2082348800b00b641ee937bc99c58e2a">  435</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a2082348800b00b641ee937bc99c58e2a">begin</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg, <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>) {</div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;AudioDriverCS43l22Class::begin&quot;</span>);</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a> = &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>;</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a> = codecCfg;</div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="comment">// manage reset pin -&gt; acive high</span></div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a1b3ee72f65915dcb4c875835d6e08aa1">setPAPower</a>(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="comment">// Setup enable pin for codec</span></div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    <a class="code" href="etc_8h.html#ab074fe18b447a055b6dbcd5f9a484db5">delay</a>(100);</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    uint32_t freq = <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#ac2cbb9d16b18b1a987d1ef96c0ee460b">getFrequency</a>(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a2ae50aca3292f8f72fa1afe1269bb8c4">rate</a>);</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    uint16_t outputDevice = <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#af4d0eb0d80056f9cdfc33796c83fd13f">getOutput</a>(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#a53991a860287c34f4e412af745d4bb66">output_device</a>);</div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;cs43l22_Init&quot;</span>);</div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    <span class="keywordtype">bool</span> result =</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        cs43l22_Init(<a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>, outputDevice, <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>, freq, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>()) == 0;</div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    <span class="keywordflow">if</span> (!result) {</div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;      <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;error: cs43l22_Init&quot;</span>);</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    }</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    cs43l22_Play(<a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>, <span class="keyword">nullptr</span>, 0);</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;  }</div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160; </div>
<div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a6442182dfc4c54fb16b002b6f15c86e4">  455</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a6442182dfc4c54fb16b002b6f15c86e4">setConfig</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg) {</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a> = codecCfg;</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    uint32_t freq = <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#ac2cbb9d16b18b1a987d1ef96c0ee460b">getFrequency</a>(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a2ae50aca3292f8f72fa1afe1269bb8c4">rate</a>);</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    uint16_t outputDevice = <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#af4d0eb0d80056f9cdfc33796c83fd13f">getOutput</a>(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#a53991a860287c34f4e412af745d4bb66">output_device</a>);</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    <span class="keywordflow">return</span> cs43l22_Init(<a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>, outputDevice, this-&gt;<a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>, freq,</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;                        <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>()) == 0;</div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;  }</div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160; </div>
<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">  463</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(<span class="keywordtype">bool</span> mute) {</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    uint32_t rc = mute ? cs43l22_Pause(<a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>) : cs43l22_Resume(<a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>);</div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    <span class="keywordflow">return</span> rc == 0;</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;  }</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160; </div>
<div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">  468</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>) {</div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    this-&gt;volume = <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>;</div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    <span class="keywordflow">return</span> cs43l22_SetVolume(<a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>, <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>) == 0;</div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;  }</div>
<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aac9746ddc550ec176b0957affafbdbe7">  472</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>; }</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160; </div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">  475</a></span>&#160;  uint16_t <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>;</div>
<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aed48ca0bcd2162fd4fd495873e2631f5">  476</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a> = 100;</div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160; </div>
<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a5117a0a714bc6ffce07a792ca2b5c872">  478</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a5117a0a714bc6ffce07a792ca2b5c872">deinit</a>() {</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    <span class="keywordtype">int</span> cnt = cs43l22_Stop(<a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>, AUDIO_MUTE_ON);</div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    cnt += cs43l22_Reset(<a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>);</div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a1b3ee72f65915dcb4c875835d6e08aa1">setPAPower</a>(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordflow">return</span> cnt == 0;</div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;  }</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160; </div>
<div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#ac2cbb9d16b18b1a987d1ef96c0ee460b">  485</a></span>&#160;  uint32_t <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#ac2cbb9d16b18b1a987d1ef96c0ee460b">getFrequency</a>(<a class="code" href="group__enumerations.html#ga9455c9aa894b64d5d3997a038141991b">samplerate_t</a> rateNum) {</div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    <span class="keywordflow">switch</span> (rateNum) {</div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba6c34cf487fbecbdb9c7282a24e338cb2">RATE_8K</a>:</div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        <span class="keywordflow">return</span> 8000; </div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991baccef6e39d6855b77e2ec01e10095ea6b">RATE_11K</a>:</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;        <span class="keywordflow">return</span> 11024; </div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991bae713f819f76ea57722e5a1296fd77cf0">RATE_16K</a>:</div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        <span class="keywordflow">return</span> 16000; </div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba48d81c4b3d3c47c2edaf53287a74440f">RATE_22K</a>:</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;        <span class="keywordflow">return</span> 22050; </div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba3f394c7023481136a11456f4d6fd7674">RATE_24K</a>:</div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;        <span class="keywordflow">return</span> 24000; </div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991bab22cf724e3c3bb37888df8870cc6f60b">RATE_32K</a>:</div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;        <span class="keywordflow">return</span> 32000; </div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba1448cc64c77cf916c8d7f735c6374b37">RATE_44K</a>:</div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        <span class="keywordflow">return</span> 44100; </div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991baf72a585e7262a1b6a49e268f3672987d">RATE_48K</a>:</div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;        <span class="keywordflow">return</span> 48000; </div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    }</div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    <span class="keywordflow">return</span> 44100;</div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;  }</div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160; </div>
<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#af4d0eb0d80056f9cdfc33796c83fd13f">  507</a></span>&#160;  uint16_t <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#af4d0eb0d80056f9cdfc33796c83fd13f">getOutput</a>(<a class="code" href="group__audio__driver.html#ga9144c83baaa7ebeaaecb236f9e21d264">output_device_t</a> output_device) {</div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    <span class="keywordflow">switch</span> (output_device) {</div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ab839e055e11786256cd328d1b754a190">DAC_OUTPUT_NONE</a>:</div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264a11a8487d0e17c9ac1d194c4f99974c85">DAC_OUTPUT_LINE1</a>:</div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;        <span class="keywordflow">return</span> OUTPUT_DEVICE_SPEAKER;</div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ae7351d9cbd1c1c3cd76bf4665e8d0cca">DAC_OUTPUT_LINE2</a>:</div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        <span class="keywordflow">return</span> OUTPUT_DEVICE_HEADPHONE;</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264a9f3f48105f92c53bfcc4d9546f666c43">DAC_OUTPUT_ALL</a>:</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;        <span class="keywordflow">return</span> OUTPUT_DEVICE_BOTH;</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;    }</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    <span class="keywordflow">return</span> OUTPUT_DEVICE_BOTH;</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;  }</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;};</div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160; </div>
<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html">  527</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html">AudioDriverCS42448Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ac449de25c72e7a8fbbcbf0bf6a8132ba">  529</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ac449de25c72e7a8fbbcbf0bf6a8132ba">begin</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg, <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad8d67cf9f0242d3b29e464ce9ae6d33f">cfg</a> = codecCfg;</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;    <span class="comment">// setup pins</span></div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>.<a class="code" href="classaudio__driver_1_1_driver_pins.html#a50f45551c10ca30a0bc7f447e70188b1">begin</a>();</div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;    <span class="comment">// setup cs42448</span></div>
<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>.begin(<a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad8d67cf9f0242d3b29e464ce9ae6d33f">cfg</a>, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>(), <a class="code" href="classaudio__driver_1_1_audio_driver.html#a5913823f39bb4c4d7078b0e1a9cb0775">getI2CAddress</a>());</div>
<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>.setMute(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;  }</div>
<div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a6442182dfc4c54fb16b002b6f15c86e4">  538</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a6442182dfc4c54fb16b002b6f15c86e4">setConfig</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg) {</div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    <span class="keywordtype">bool</span> result = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    <span class="keywordflow">if</span> (codecCfg.<a class="code" href="classaudio__driver_1_1_codec_config.html#af79a2494e2c27af3418daf7ee490c413">equalsExRate</a>(<a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad8d67cf9f0242d3b29e464ce9ae6d33f">cfg</a>)) {</div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;      <span class="comment">// just update the rate</span></div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;      <span class="keywordflow">if</span> (<a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad8d67cf9f0242d3b29e464ce9ae6d33f">cfg</a>.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a2ae50aca3292f8f72fa1afe1269bb8c4">rate</a> != <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad8d67cf9f0242d3b29e464ce9ae6d33f">cfg</a>.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a2ae50aca3292f8f72fa1afe1269bb8c4">rate</a>) {</div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;        <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>.setMute(<span class="keyword">true</span>);</div>
<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;        <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>.setSampleRate(codecCfg.<a class="code" href="classaudio__driver_1_1_codec_config.html#a5a8e72d47263001aff56c9f4aa976fa4">getRateNumeric</a>());</div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>.setMute(<span class="keyword">false</span>);</div>
<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;      }</div>
<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;      result = <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ac449de25c72e7a8fbbcbf0bf6a8132ba">begin</a>(codecCfg, *<a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a>);</div>
<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    }</div>
<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;  }</div>
<div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aba72f3c7e37f01ac993d5c425dafc0f2">  552</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aba72f3c7e37f01ac993d5c425dafc0f2">end</a>(<span class="keywordtype">void</span>)<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>.end(); }</div>
<div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a5444d35c243eb935c725e3205b06016d">  553</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a5444d35c243eb935c725e3205b06016d">setMute</a>(<span class="keywordtype">bool</span> enable)<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>.setMute(enable); }</div>
<div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ade3d888867e36d74b3cdc1cd3fe74c38">  554</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ade3d888867e36d74b3cdc1cd3fe74c38">setMute</a>(<span class="keywordtype">bool</span> enable, <span class="keywordtype">int</span> line) {</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>.setMuteDAC(line, enable);</div>
<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;  }</div>
<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">  558</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">setVolume</a>(<span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    this-&gt;volume = <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>;</div>
<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>.setVolumeDAC(2.55f * <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>);</div>
<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;  }</div>
<div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a7d6672ed23d1e6da839e84a34381b282">  562</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a7d6672ed23d1e6da839e84a34381b282">setVolume</a>(<span class="keywordtype">int</span> dac, <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>) {</div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>.setVolumeDAC(dac, 2.55f * <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>);</div>
<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;  }</div>
<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160; </div>
<div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a016f575b7c0ff5b13cb1b907f66de665">  566</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a016f575b7c0ff5b13cb1b907f66de665">getVolume</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>; }</div>
<div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad3455849766196a8ab522b2da63a05d8">  567</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad3455849766196a8ab522b2da63a05d8">setInputVolume</a>(<span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    <span class="keywordtype">int</span> vol = map(<a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>, 0, 100, -128, 127);</div>
<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>.setVolumeADC(vol);</div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;  }</div>
<div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4510f634312ee31f499f25c2a02b8b39">  571</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4510f634312ee31f499f25c2a02b8b39">isVolumeSupported</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a35ee14e345e291f347cb25380989aad9">  572</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a35ee14e345e291f347cb25380989aad9">isInputVolumeSupported</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160; </div>
<div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a42db9a98715e0b6383cd493d5ca06a8e">  574</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>() { <span class="keywordflow">return</span> *<a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a>; }</div>
<div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a33cb0c0c070cec0dd53d8ea4e24e4723">  575</a></span>&#160;  CS42448 &amp;<a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a33cb0c0c070cec0dd53d8ea4e24e4723">driver</a>() { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>; }</div>
<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160; </div>
<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">  578</a></span>&#160;  CS42448 <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">cs42448</a>;</div>
<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed163ec96131f32e2b3316974a2bd9bc">  579</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> *<a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed48ca0bcd2162fd4fd495873e2631f5">  580</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a> = 100;</div>
<div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad8d67cf9f0242d3b29e464ce9ae6d33f">  581</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad8d67cf9f0242d3b29e464ce9ae6d33f">cfg</a>;</div>
<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;};</div>
<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160; </div>
<div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html">  589</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html">AudioDriverES7210Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">  591</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(<span class="keywordtype">bool</span> mute) { <span class="keywordflow">return</span> es7210_set_mute(mute) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">  592</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>) {</div>
<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    this-&gt;volume = <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>;</div>
<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    <span class="keywordflow">return</span> es7210_adc_set_volume(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(<a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>)) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;  }</div>
<div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aac9746ddc550ec176b0957affafbdbe7">  596</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>; }</div>
<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160; </div>
<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00599"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aed48ca0bcd2162fd4fd495873e2631f5">  599</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>;</div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160; </div>
<div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#a52e4f3e14150fab743955aa7fb4a6af6">  601</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#a52e4f3e14150fab743955aa7fb4a6af6">init</a>(<a class="code" href="structcodec__config__t.html">codec_config_t</a> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>) {</div>
<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    <span class="keywordflow">return</span> es7210_adc_init(&amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>()) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;  }</div>
<div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#a5117a0a714bc6ffce07a792ca2b5c872">  604</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#a5117a0a714bc6ffce07a792ca2b5c872">deinit</a>() { <span class="keywordflow">return</span> es7210_adc_deinit() == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160; </div>
<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">  606</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">controlState</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode) {</div>
<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;    <span class="keywordflow">return</span> es7210_adc_ctrl_state_active(mode, <span class="keyword">true</span>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;  }</div>
<div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">  609</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">configInterface</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode, <a class="code" href="struct_i2_s_definition.html">I2SDefinition</a> iface) {</div>
<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    <span class="keywordflow">return</span> es7210_adc_config_i2s(mode, &amp;iface) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;  }</div>
<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;};</div>
<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160; </div>
<div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html">  619</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html">AudioDriverES7243Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00621"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">  621</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(<span class="keywordtype">bool</span> mute) {</div>
<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <span class="keywordflow">return</span> es7243_adc_set_voice_mute(mute) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;  }</div>
<div class="line"><a name="l00624"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">  624</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> volume) {</div>
<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    <span class="keywordflow">return</span> es7243_adc_set_voice_volume(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(volume)) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;  }</div>
<div class="line"><a name="l00627"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#aac9746ddc550ec176b0957affafbdbe7">  627</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() {</div>
<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    <span class="keywordtype">int</span> vol;</div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    es7243_adc_get_voice_volume(&amp;vol);</div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    <span class="keywordflow">return</span> vol;</div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;  }</div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160; </div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#a52e4f3e14150fab743955aa7fb4a6af6">  634</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#a52e4f3e14150fab743955aa7fb4a6af6">init</a>(<a class="code" href="structcodec__config__t.html">codec_config_t</a> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>) {</div>
<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    <span class="keywordflow">return</span> es7243_adc_init(&amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>()) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;  }</div>
<div class="line"><a name="l00637"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#a5117a0a714bc6ffce07a792ca2b5c872">  637</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#a5117a0a714bc6ffce07a792ca2b5c872">deinit</a>() { <span class="keywordflow">return</span> es7243_adc_deinit() == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160; </div>
<div class="line"><a name="l00639"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">  639</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">controlState</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode) {</div>
<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    <span class="keywordflow">return</span> es7243_adc_ctrl_state_active(mode, <span class="keyword">true</span>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;  }</div>
<div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">  642</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">configInterface</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode, <a class="code" href="struct_i2_s_definition.html">I2SDefinition</a> iface) {</div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    <span class="keywordflow">return</span> es7243_adc_config_i2s(mode, &amp;iface) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;  }</div>
<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;};</div>
<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160; </div>
<div class="line"><a name="l00653"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html">  653</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html">AudioDriverES7243eClass</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">  655</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(<span class="keywordtype">bool</span> mute) {</div>
<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    <span class="keywordflow">return</span> mute ? <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(0) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a> : <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;  }</div>
<div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">  658</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>) {</div>
<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    this-&gt;volume = <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>;</div>
<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;    <span class="keywordflow">return</span> es7243e_adc_set_voice_volume(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(<a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>)) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;  }</div>
<div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aac9746ddc550ec176b0957affafbdbe7">  662</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() {</div>
<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;    <span class="keywordtype">int</span> vol;</div>
<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;    es7243e_adc_get_voice_volume(&amp;vol);</div>
<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;    <span class="keywordflow">return</span> vol;</div>
<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;  }</div>
<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160; </div>
<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aed48ca0bcd2162fd4fd495873e2631f5">  669</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a> = 0;</div>
<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160; </div>
<div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#a52e4f3e14150fab743955aa7fb4a6af6">  671</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#a52e4f3e14150fab743955aa7fb4a6af6">init</a>(<a class="code" href="structcodec__config__t.html">codec_config_t</a> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>) {</div>
<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;    <span class="keywordflow">return</span> es7243e_adc_init(&amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>()) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;  }</div>
<div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#a5117a0a714bc6ffce07a792ca2b5c872">  674</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#a5117a0a714bc6ffce07a792ca2b5c872">deinit</a>() { <span class="keywordflow">return</span> es7243e_adc_deinit() == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160; </div>
<div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">  676</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">controlState</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode) {</div>
<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;    <span class="keywordflow">return</span> es7243e_adc_ctrl_state_active(mode, <span class="keyword">true</span>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;  }</div>
<div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">  679</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">configInterface</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode, <a class="code" href="struct_i2_s_definition.html">I2SDefinition</a> iface) {</div>
<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    <span class="keywordflow">return</span> es7243e_adc_config_i2s(mode, &amp;iface) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;  }</div>
<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;};</div>
<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160; </div>
<div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html">  689</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html">AudioDriverES8156Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">  691</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(<span class="keywordtype">bool</span> mute) {</div>
<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    <span class="keywordflow">return</span> es8156_codec_set_voice_mute(mute) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;  }</div>
<div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">  694</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> volume) {</div>
<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;volume %d&quot;</span>, volume);</div>
<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    <span class="keywordflow">return</span> es8156_codec_set_voice_volume(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(volume)) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;  }</div>
<div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#aac9746ddc550ec176b0957affafbdbe7">  698</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() {</div>
<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    <span class="keywordtype">int</span> vol;</div>
<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    es8156_codec_get_voice_volume(&amp;vol);</div>
<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    <span class="keywordflow">return</span> vol;</div>
<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;  }</div>
<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160; </div>
<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#a52e4f3e14150fab743955aa7fb4a6af6">  705</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#a52e4f3e14150fab743955aa7fb4a6af6">init</a>(<a class="code" href="structcodec__config__t.html">codec_config_t</a> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>) {</div>
<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    <span class="keywordflow">return</span> es8156_codec_init(&amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>()) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;  }</div>
<div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#a5117a0a714bc6ffce07a792ca2b5c872">  708</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#a5117a0a714bc6ffce07a792ca2b5c872">deinit</a>() { <span class="keywordflow">return</span> es8156_codec_deinit() == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160; </div>
<div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">  710</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">controlState</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode) {</div>
<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;    <span class="keywordflow">return</span> es8156_codec_ctrl_state_active(mode, <span class="keyword">true</span>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;  }</div>
<div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">  713</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">configInterface</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode, <a class="code" href="struct_i2_s_definition.html">I2SDefinition</a> iface) {</div>
<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;    <span class="keywordflow">return</span> es8156_codec_config_i2s(mode, &amp;iface) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;  }</div>
<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;};</div>
<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160; </div>
<div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html">  723</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html">AudioDriverES8311Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00725"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a0a39ac8b472ea3560458401029e3920a">  725</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a0a39ac8b472ea3560458401029e3920a">AudioDriverES8311Class</a>(<span class="keywordtype">int</span> i2cAddr = 0) { <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a962c50e2ca85425174e1cc8bd43720bd">i2c_address</a> = i2cAddr; }</div>
<div class="line"><a name="l00726"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">  726</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(<span class="keywordtype">bool</span> mute) { <span class="keywordflow">return</span> es8311_set_voice_mute(mute) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">  727</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> volume) {</div>
<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;    <span class="keywordflow">return</span> es8311_codec_set_voice_volume(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(volume)) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;  }</div>
<div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#aac9746ddc550ec176b0957affafbdbe7">  730</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() {</div>
<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;    <span class="keywordtype">int</span> vol;</div>
<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;    es8311_codec_get_voice_volume(&amp;vol);</div>
<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;    <span class="keywordflow">return</span> vol;</div>
<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;  }</div>
<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160; </div>
<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a962c50e2ca85425174e1cc8bd43720bd">  737</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a962c50e2ca85425174e1cc8bd43720bd">i2c_address</a>;</div>
<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160; </div>
<div class="line"><a name="l00739"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a52e4f3e14150fab743955aa7fb4a6af6">  739</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a52e4f3e14150fab743955aa7fb4a6af6">init</a>(<a class="code" href="structcodec__config__t.html">codec_config_t</a> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>) {</div>
<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;    <span class="keywordtype">int</span> mclk_src = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>().<a class="code" href="classaudio__driver_1_1_driver_pins.html#a1bec8cca54681dc1e21f9a5281642dc7">getPinID</a>(<a class="code" href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafa0301a754913dd38062217d6b511a1696">PinFunction::MCLK_SOURCE</a>);</div>
<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;    <span class="keywordflow">if</span> (mclk_src == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160; </div>
<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    <span class="comment">// determine address from data</span></div>
<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a962c50e2ca85425174e1cc8bd43720bd">i2c_address</a> &lt;= 0) <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a962c50e2ca85425174e1cc8bd43720bd">i2c_address</a> = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a5913823f39bb4c4d7078b0e1a9cb0775">getI2CAddress</a>();</div>
<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160; </div>
<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;    <span class="keywordflow">return</span> es8311_codec_init(&amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>(), mclk_src, <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a962c50e2ca85425174e1cc8bd43720bd">i2c_address</a>) ==</div>
<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;           <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;  }</div>
<div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a5117a0a714bc6ffce07a792ca2b5c872">  749</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a5117a0a714bc6ffce07a792ca2b5c872">deinit</a>() { <span class="keywordflow">return</span> es8311_codec_deinit() == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160; </div>
<div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">  751</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">controlState</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode) {</div>
<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    <span class="keywordflow">return</span> es8311_codec_ctrl_state_active(mode, <span class="keyword">true</span>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;  }</div>
<div class="line"><a name="l00754"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">  754</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">configInterface</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode, <a class="code" href="struct_i2_s_definition.html">I2SDefinition</a> iface) {</div>
<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;    <span class="keywordflow">return</span> es8311_codec_config_i2s(mode, &amp;iface) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;  }</div>
<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;};</div>
<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160; </div>
<div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html">  764</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html">AudioDriverES8374Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#aac1986dd7e9c20029acc313b225dd522">  766</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#aac1986dd7e9c20029acc313b225dd522">AudioDriverES8374Class</a>(<span class="keywordtype">int</span> i2cAddr = 0) { <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a962c50e2ca85425174e1cc8bd43720bd">i2c_address</a> = i2cAddr; }</div>
<div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">  767</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(<span class="keywordtype">bool</span> mute) { <span class="keywordflow">return</span> es8374_set_voice_mute(mute) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">  768</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> volume) {</div>
<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;volume %d&quot;</span>, volume);</div>
<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;    <span class="keywordflow">return</span> es8374_codec_set_voice_volume(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(volume)) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;  }</div>
<div class="line"><a name="l00772"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#aac9746ddc550ec176b0957affafbdbe7">  772</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() {</div>
<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    <span class="keywordtype">int</span> vol;</div>
<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;    es8374_codec_get_voice_volume(&amp;vol);</div>
<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;    <span class="keywordflow">return</span> vol;</div>
<div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;  }</div>
<div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160; </div>
<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00779"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a962c50e2ca85425174e1cc8bd43720bd">  779</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a962c50e2ca85425174e1cc8bd43720bd">i2c_address</a>;</div>
<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160; </div>
<div class="line"><a name="l00781"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a52e4f3e14150fab743955aa7fb4a6af6">  781</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a52e4f3e14150fab743955aa7fb4a6af6">init</a>(<a class="code" href="structcodec__config__t.html">codec_config_t</a> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>) {</div>
<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;    <span class="keyword">auto</span> codec_mode = this-&gt;codec_cfg.get_mode();</div>
<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a962c50e2ca85425174e1cc8bd43720bd">i2c_address</a> &lt;= 0) {</div>
<div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;      <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a962c50e2ca85425174e1cc8bd43720bd">i2c_address</a> = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a5913823f39bb4c4d7078b0e1a9cb0775">getI2CAddress</a>();</div>
<div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    }</div>
<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    <span class="keywordflow">return</span> es8374_codec_init(&amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>, codec_mode, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>(), <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a962c50e2ca85425174e1cc8bd43720bd">i2c_address</a>) ==</div>
<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;           <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;  }</div>
<div class="line"><a name="l00789"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a5117a0a714bc6ffce07a792ca2b5c872">  789</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a5117a0a714bc6ffce07a792ca2b5c872">deinit</a>() { <span class="keywordflow">return</span> es8374_codec_deinit() == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160; </div>
<div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">  791</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">controlState</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode) {</div>
<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;    <span class="keywordflow">return</span> es8374_codec_ctrl_state_active(mode, <span class="keyword">true</span>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;  }</div>
<div class="line"><a name="l00794"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">  794</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">configInterface</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode, <a class="code" href="struct_i2_s_definition.html">I2SDefinition</a> iface) {</div>
<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;    <span class="keywordflow">return</span> es8374_codec_config_i2s(mode, &amp;iface) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;  }</div>
<div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;};</div>
<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160; </div>
<div class="line"><a name="l00804"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html">  804</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html">AudioDriverES8388Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">  806</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(<span class="keywordtype">bool</span> mute) {</div>
<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">line_active</a>[0] = !mute;</div>
<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">line_active</a>[1] = !mute;</div>
<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    <span class="keywordflow">return</span> es8388_set_voice_mute(mute) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;  }</div>
<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;  <span class="comment">// mute individual line: lines start at 0 (valid range 0:1)</span></div>
<div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a59ea4d70e5093706baadc42b6854b6ab">  812</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a59ea4d70e5093706baadc42b6854b6ab">setMute</a>(<span class="keywordtype">bool</span> mute, <span class="keywordtype">int</span> line) {</div>
<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;    <span class="keywordflow">if</span> (line &gt; 1) {</div>
<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;      <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;invalid line %d&quot;</span>, line);</div>
<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;    }</div>
<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;    <span class="comment">// mute is managed on line level, so deactivate global mute</span></div>
<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">line_active</a>[line] = !mute;</div>
<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">line_active</a>[0] &amp;&amp; <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">line_active</a>[1]) {</div>
<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;      <span class="keywordflow">return</span> es8388_config_output_device(<a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264a9f3f48105f92c53bfcc4d9546f666c43">DAC_OUTPUT_ALL</a>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!<a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">line_active</a>[0] &amp;&amp; !<a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">line_active</a>[1]) {</div>
<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;      <span class="keywordflow">return</span> es8388_config_output_device(<a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ab839e055e11786256cd328d1b754a190">DAC_OUTPUT_NONE</a>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">line_active</a>[0]) {</div>
<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;      <span class="keywordflow">return</span> es8388_config_output_device(<a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264a11a8487d0e17c9ac1d194c4f99974c85">DAC_OUTPUT_LINE1</a>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">line_active</a>[1]) {</div>
<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;      <span class="keywordflow">return</span> es8388_config_output_device(<a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ae7351d9cbd1c1c3cd76bf4665e8d0cca">DAC_OUTPUT_LINE2</a>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    }</div>
<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;  }</div>
<div class="line"><a name="l00830"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">  830</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> volume) {</div>
<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;volume %d&quot;</span>, volume);</div>
<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;    <span class="keywordflow">return</span> es8388_set_voice_volume(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(volume)) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;  }</div>
<div class="line"><a name="l00834"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#aac9746ddc550ec176b0957affafbdbe7">  834</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() {</div>
<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;    <span class="keywordtype">int</span> vol;</div>
<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    es8388_get_voice_volume(&amp;vol);</div>
<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <span class="keywordflow">return</span> vol;</div>
<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;  }</div>
<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160; </div>
<div class="line"><a name="l00840"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#acd5d071057ce19f3718940329d202ef8">  840</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#acd5d071057ce19f3718940329d202ef8">setInputVolume</a>(<span class="keywordtype">int</span> volume) {</div>
<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;    <span class="comment">// map values from 0 - 100 to 0 to 9  MIC_GAIN_MIN = -1,</span></div>
<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;    <a class="code" href="group__enumerations.html#gac5dc971b3e58c17abd8b5b946b759fb1">es_mic_gain_t</a> gains[] = {<a class="code" href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a44589f8247f04887c306432df8a86049">MIC_GAIN_0DB</a>,  <a class="code" href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1afe511acf91423b954d1f6cad90682809">MIC_GAIN_3DB</a>,  <a class="code" href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a1fe1c54eb344f0f7a80272ce2f24cb44">MIC_GAIN_6DB</a>,</div>
<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;                             <a class="code" href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a3132f2959b8d99581690ecb1adf62bd2">MIC_GAIN_9DB</a>,  <a class="code" href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1aac5d753f722c1efce8e2d76002143c4d">MIC_GAIN_12DB</a>, <a class="code" href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a08a9bf3d23d135d4e85f03e198e1c005">MIC_GAIN_15DB</a>,</div>
<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;                             <a class="code" href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1ac039cad318ebaf20edec4ab8105a6ede">MIC_GAIN_18DB</a>, <a class="code" href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1ae69a8a09d15387b72842cc72d1590e78">MIC_GAIN_21DB</a>, <a class="code" href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a403715f5d3e58d8a2bf28a6a5fc5cbfb">MIC_GAIN_24DB</a>,</div>
<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;                             <a class="code" href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a408342d4f4c39fc3bfbda1b3b8255f03">MIC_GAIN_MAX</a>};</div>
<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    <span class="keywordtype">int</span> idx = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(volume / 10, 9);</div>
<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    <a class="code" href="group__enumerations.html#gac5dc971b3e58c17abd8b5b946b759fb1">es_mic_gain_t</a> gain = gains[idx];</div>
<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;input volume: %d -&gt; gain %d&quot;</span>, volume, gain);</div>
<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#aadd8a57d9981d793494b96bfc9939699">setMicrophoneGain</a>(gain);</div>
<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;  }</div>
<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160; </div>
<div class="line"><a name="l00852"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#aadd8a57d9981d793494b96bfc9939699">  852</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#aadd8a57d9981d793494b96bfc9939699">setMicrophoneGain</a>(<a class="code" href="group__enumerations.html#gac5dc971b3e58c17abd8b5b946b759fb1">es_mic_gain_t</a> gain) {</div>
<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    <span class="keywordflow">return</span> es8388_set_mic_gain(gain) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;  }</div>
<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160; </div>
<div class="line"><a name="l00856"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a935ad3a2898c94e433a1da3b948dff72">  856</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a935ad3a2898c94e433a1da3b948dff72">isInputVolumeSupported</a>() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160; </div>
<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00859"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">  859</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">line_active</a>[2] = {<span class="keyword">true</span>};</div>
<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160; </div>
<div class="line"><a name="l00861"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a52e4f3e14150fab743955aa7fb4a6af6">  861</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a52e4f3e14150fab743955aa7fb4a6af6">init</a>(<a class="code" href="structcodec__config__t.html">codec_config_t</a> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>) {</div>
<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;    <span class="keywordflow">return</span> es8388_init(&amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>()) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;  }</div>
<div class="line"><a name="l00864"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a5117a0a714bc6ffce07a792ca2b5c872">  864</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a5117a0a714bc6ffce07a792ca2b5c872">deinit</a>() { <span class="keywordflow">return</span> es8388_deinit() == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160; </div>
<div class="line"><a name="l00866"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">  866</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">controlState</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode) {</div>
<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    <span class="keywordflow">return</span> es8388_ctrl_state_active(mode, <span class="keyword">true</span>) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;  }</div>
<div class="line"><a name="l00869"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">  869</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">configInterface</a>(<a class="code" href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a> mode, <a class="code" href="struct_i2_s_definition.html">I2SDefinition</a> iface) {</div>
<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    <span class="keywordflow">return</span> es8388_config_i2s(mode, &amp;iface) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;  }</div>
<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;};</div>
<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160; </div>
<div class="line"><a name="l00879"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html">  879</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html">AudioDriverTAS5805MClass</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00881"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">  881</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(<span class="keywordtype">bool</span> mute) { <span class="keywordflow">return</span> tas5805m_set_mute(mute) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00882"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">  882</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> volume) {</div>
<div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;    <a class="code" href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a>(<span class="stringliteral">&quot;volume %d&quot;</span>, volume);</div>
<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;    <span class="keywordflow">return</span> tas5805m_set_volume(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(volume)) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;  }</div>
<div class="line"><a name="l00886"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#aac9746ddc550ec176b0957affafbdbe7">  886</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() {</div>
<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;    <span class="keywordtype">int</span> vol;</div>
<div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;    tas5805m_get_volume(&amp;vol);</div>
<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;    <span class="keywordflow">return</span> vol;</div>
<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;  }</div>
<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160; </div>
<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#a52e4f3e14150fab743955aa7fb4a6af6">  893</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#a52e4f3e14150fab743955aa7fb4a6af6">init</a>(<a class="code" href="structcodec__config__t.html">codec_config_t</a> <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>) {</div>
<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;    <span class="keywordflow">return</span> tas5805m_init(&amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>()) == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>;</div>
<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;  }</div>
<div class="line"><a name="l00896"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#a5117a0a714bc6ffce07a792ca2b5c872">  896</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#a5117a0a714bc6ffce07a792ca2b5c872">deinit</a>() { <span class="keywordflow">return</span> tas5805m_deinit() == <a class="code" href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a>; }</div>
<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;};</div>
<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160; </div>
<div class="line"><a name="l00904"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html">  904</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html">AudioDriverWM8960Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00906"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a61f1b9f3a7b3cb76ade6f9b7d9ba984b">  906</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a61f1b9f3a7b3cb76ade6f9b7d9ba984b">begin</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg, <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>) {</div>
<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a> = codecCfg;</div>
<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160; </div>
<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;    <span class="comment">// define wire object</span></div>
<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;    mtb_wm8960_set_wire(<a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>());</div>
<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;    mtb_wm8960_set_write_retry_count(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a54efa0ea60ca2c083bc8ae8b528c60ce">i2c_retry_count</a>);</div>
<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160; </div>
<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;    <span class="comment">// setup wm8960</span></div>
<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;    <span class="keywordtype">int</span> features = <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a9f3163534459bc30dd5e39ad3626199d">getFeatures</a>(codecCfg);</div>
<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;    <span class="keywordflow">if</span> (!mtb_wm8960_init(features)) {</div>
<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;      <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;mtb_wm8960_init&quot;</span>);</div>
<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;    }</div>
<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<a class="code" href="_audio_driver_config_8h.html#a2513e2bd0eb45a0ccefbbcd3f289ca47">DRIVER_DEFAULT_VOLUME</a>);</div>
<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;    <span class="keywordflow">if</span> (!mtb_wm8960_activate()) {</div>
<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;      <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;mtb_wm8960_activate&quot;</span>);</div>
<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;    }</div>
<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;    <span class="keywordflow">if</span> (!<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ac338f04bad8799bc975b4942bf1a6cc5">configure_clocking</a>()) {</div>
<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;      <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;configure_clocking&quot;</span>);</div>
<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;    }</div>
<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;  }</div>
<div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a1261028d75a47804743db047621c62ac">  930</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a1261028d75a47804743db047621c62ac">end</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;    mtb_wm8960_deactivate();</div>
<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    mtb_wm8960_free();</div>
<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;  }</div>
<div class="line"><a name="l00935"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a6442182dfc4c54fb16b002b6f15c86e4">  935</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a6442182dfc4c54fb16b002b6f15c86e4">setConfig</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg) {</div>
<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a> = codecCfg;</div>
<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ac338f04bad8799bc975b4942bf1a6cc5">configure_clocking</a>();</div>
<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;  }</div>
<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160; </div>
<div class="line"><a name="l00940"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a70628dacff2793c2793f7f30a4b9e994">  940</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a70628dacff2793c2793f7f30a4b9e994">setMute</a>(<span class="keywordtype">bool</span> enable) { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(enable ? 0 : <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ab3906c1f4f34d4c23bc441d9f4194807">volume_out</a>); }</div>
<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160; </div>
<div class="line"><a name="l00943"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">  943</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> volume) {</div>
<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ab3906c1f4f34d4c23bc441d9f4194807">volume_out</a> = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(volume, 0, 100);</div>
<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    <span class="keywordtype">int</span> vol_int = <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ab3906c1f4f34d4c23bc441d9f4194807">volume_out</a> == 0.0 ? 0 : map(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ab3906c1f4f34d4c23bc441d9f4194807">volume_out</a>, 0, 100, 30, 0x7F);</div>
<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;    <span class="keywordflow">return</span> mtb_wm8960_set_output_volume(vol_int);</div>
<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;  }</div>
<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160; </div>
<div class="line"><a name="l00949"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#aac9746ddc550ec176b0957affafbdbe7">  949</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ab3906c1f4f34d4c23bc441d9f4194807">volume_out</a>; }</div>
<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160; </div>
<div class="line"><a name="l00951"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#acd5d071057ce19f3718940329d202ef8">  951</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#acd5d071057ce19f3718940329d202ef8">setInputVolume</a>(<span class="keywordtype">int</span> volume) {</div>
<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a069585b6eb441ee0fd1171342fd3b427">volume_in</a> = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">limitValue</a>(volume, 0, 100);</div>
<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;    <span class="keywordtype">int</span> vol_int = map(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a069585b6eb441ee0fd1171342fd3b427">volume_in</a>, 0, 100, 0, 30);</div>
<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    <span class="keywordflow">return</span> mtb_wm8960_adjust_input_volume(vol_int);</div>
<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;  }</div>
<div class="line"><a name="l00956"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3dbae4234a4ef6e889c1d780f7aeab68">  956</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3dbae4234a4ef6e889c1d780f7aeab68">isVolumeSupported</a>() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160; </div>
<div class="line"><a name="l00958"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a935ad3a2898c94e433a1da3b948dff72">  958</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a935ad3a2898c94e433a1da3b948dff72">isInputVolumeSupported</a>() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160; </div>
<div class="line"><a name="l00961"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3277aaba278bb20fef8a7a59d2c4f562">  961</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3277aaba278bb20fef8a7a59d2c4f562">setI2CRetryCount</a>(<span class="keywordtype">int</span> cnt) { <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a54efa0ea60ca2c083bc8ae8b528c60ce">i2c_retry_count</a> = cnt; }</div>
<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160; </div>
<div class="line"><a name="l00964"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a8d6a82ed871881027cf9dffd0c37a0b8">  964</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a8d6a82ed871881027cf9dffd0c37a0b8">setEnablePLL</a>(<span class="keywordtype">bool</span> active) { <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3f1c8e5721a062a24f7b7d2ef549601b">vs1053_enable_pll</a> = active; }</div>
<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160; </div>
<div class="line"><a name="l00967"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a388a9c7791ec686d98284afdc3052a0c">  967</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a388a9c7791ec686d98284afdc3052a0c">setMclkHz</a>(uint32_t hz) { <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad9b0acc96ff1397ffcf5d23829d1d437">vs1053_mclk_hz</a> = hz; }</div>
<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160; </div>
<div class="line"><a name="l00969"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#aa0cc714fc57008a641396f670d385c08">  969</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#aa0cc714fc57008a641396f670d385c08">dumpRegisters</a>() { mtb_wm8960_dump(); }</div>
<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160; </div>
<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00972"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a069585b6eb441ee0fd1171342fd3b427">  972</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a069585b6eb441ee0fd1171342fd3b427">volume_in</a> = 100;</div>
<div class="line"><a name="l00973"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ab3906c1f4f34d4c23bc441d9f4194807">  973</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ab3906c1f4f34d4c23bc441d9f4194807">volume_out</a> = 100;</div>
<div class="line"><a name="l00974"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a54efa0ea60ca2c083bc8ae8b528c60ce">  974</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a54efa0ea60ca2c083bc8ae8b528c60ce">i2c_retry_count</a> = 0;</div>
<div class="line"><a name="l00975"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad9b0acc96ff1397ffcf5d23829d1d437">  975</a></span>&#160;  uint32_t <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad9b0acc96ff1397ffcf5d23829d1d437">vs1053_mclk_hz</a> = 0;</div>
<div class="line"><a name="l00976"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3f1c8e5721a062a24f7b7d2ef549601b">  976</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3f1c8e5721a062a24f7b7d2ef549601b">vs1053_enable_pll</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160; </div>
<div class="line"><a name="l00978"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a9f3163534459bc30dd5e39ad3626199d">  978</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a9f3163534459bc30dd5e39ad3626199d">getFeatures</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> cfg) {</div>
<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;    <span class="keywordtype">int</span> features = 0;</div>
<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;    <span class="keywordflow">switch</span> (cfg.<a class="code" href="structcodec__config__t.html#a53991a860287c34f4e412af745d4bb66">output_device</a>) {</div>
<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264a11a8487d0e17c9ac1d194c4f99974c85">DAC_OUTPUT_LINE1</a>:</div>
<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;        features = features | WM8960_FEATURE_SPEAKER;</div>
<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ae7351d9cbd1c1c3cd76bf4665e8d0cca">DAC_OUTPUT_LINE2</a>:</div>
<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;        features = features | WM8960_FEATURE_HEADPHONE;</div>
<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264a9f3f48105f92c53bfcc4d9546f666c43">DAC_OUTPUT_ALL</a>:</div>
<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        features = features | WM8960_FEATURE_SPEAKER | WM8960_FEATURE_HEADPHONE;</div>
<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;      <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;    }</div>
<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;    <span class="keywordflow">switch</span> (cfg.<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a>) {</div>
<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50ac054fb9ae14a618d0425ded7f7f17bed">ADC_INPUT_LINE1</a>:</div>
<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;        features = features | WM8960_FEATURE_MICROPHONE1;</div>
<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50ad6c7a8904c3ea81c09ac8558aa52d69d">ADC_INPUT_LINE2</a>:</div>
<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;        features = features | WM8960_FEATURE_MICROPHONE2;</div>
<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50a11f1754fb68fd4906c74368d9db39439">ADC_INPUT_ALL</a>:</div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;        features = features | WM8960_FEATURE_MICROPHONE1 |</div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;                   WM8960_FEATURE_MICROPHONE2 | WM8960_FEATURE_MICROPHONE3;</div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;      <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;    }</div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;    <a class="code" href="_logger_8c.html#ada3b7c7d836d0f21f2bd2f945c997294">AD_LOGI</a>(<span class="stringliteral">&quot;features: %d&quot;</span>, features);</div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    <span class="keywordflow">return</span> features;</div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;  }</div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; </div>
<div class="line"><a name="l01011"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ac338f04bad8799bc975b4942bf1a6cc5"> 1011</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ac338f04bad8799bc975b4942bf1a6cc5">configure_clocking</a>() {</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad9b0acc96ff1397ffcf5d23829d1d437">vs1053_mclk_hz</a> == 0) {</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;      <span class="comment">// just pick a multiple of the sample rate</span></div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;      <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad9b0acc96ff1397ffcf5d23829d1d437">vs1053_mclk_hz</a> = 512 * <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="classaudio__driver_1_1_codec_config.html#a5a8e72d47263001aff56c9f4aa976fa4">getRateNumeric</a>();</div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    }</div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;    <span class="keywordflow">if</span> (!mtb_wm8960_configure_clocking(</div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;            <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad9b0acc96ff1397ffcf5d23829d1d437">vs1053_mclk_hz</a>, <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3f1c8e5721a062a24f7b7d2ef549601b">vs1053_enable_pll</a>,</div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;            <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a739ef5bfe541910d7b6e52b260dedc82">sampleRate</a>(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="classaudio__driver_1_1_codec_config.html#a5a8e72d47263001aff56c9f4aa976fa4">getRateNumeric</a>()),</div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;            <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3ac8404aa88c0fbb927d1704059b94c2">wordLength</a>(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="classaudio__driver_1_1_codec_config.html#afb4dc267068aaa494327923fecec6b41">getBitsNumeric</a>()),</div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;            <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a057bd9823253d287868d869ed21ca3ad">modeMasterSlave</a>(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a58b259b6331a0efa228683b513190b4d">mode</a> == <a class="code" href="_common_8h.html#gadebb589e2ab53e2443229481d9047b47a3a9543e231d74dbeceb3bcb1d71bc95c">MODE_MASTER</a>))) {</div>
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;      <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;mtb_wm8960_configure_clocking&quot;</span>);</div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    }</div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;  }</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; </div>
<div class="line"><a name="l01027"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a739ef5bfe541910d7b6e52b260dedc82"> 1027</a></span>&#160;  mtb_wm8960_adc_dac_sample_rate_t <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a739ef5bfe541910d7b6e52b260dedc82">sampleRate</a>(<span class="keywordtype">int</span> rate) {</div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;    <span class="keywordflow">switch</span> (rate) {</div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;      <span class="keywordflow">case</span> 48000:</div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;        <span class="keywordflow">return</span> WM8960_ADC_DAC_SAMPLE_RATE_48_KHZ;</div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;      <span class="keywordflow">case</span> 44100:</div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;        <span class="keywordflow">return</span> WM8960_ADC_DAC_SAMPLE_RATE_44_1_KHZ;</div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;      <span class="keywordflow">case</span> 32000:</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;        <span class="keywordflow">return</span> WM8960_ADC_DAC_SAMPLE_RATE_32_KHZ;</div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;      <span class="keywordflow">case</span> 24000:</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;        <span class="keywordflow">return</span> WM8960_ADC_DAC_SAMPLE_RATE_24_KHZ;</div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;      <span class="keywordflow">case</span> 22050:</div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;        <span class="keywordflow">return</span> WM8960_ADC_DAC_SAMPLE_RATE_22_05_KHZ;</div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;      <span class="keywordflow">case</span> 16000:</div>
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;        <span class="keywordflow">return</span> WM8960_ADC_DAC_SAMPLE_RATE_16_KHZ;</div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;      <span class="keywordflow">case</span> 12000:</div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;        <span class="keywordflow">return</span> WM8960_ADC_DAC_SAMPLE_RATE_12_KHZ;</div>
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;      <span class="keywordflow">case</span> 11025:</div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;        <span class="keywordflow">return</span> WM8960_ADC_DAC_SAMPLE_RATE_11_025_KHZ;</div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;      <span class="keywordflow">case</span> 8018:</div>
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;        <span class="keywordflow">return</span> WM8960_ADC_DAC_SAMPLE_RATE_8_018_KHZ;</div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;      <span class="keywordflow">case</span> 8000:</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;        <span class="keywordflow">return</span> WM8960_ADC_DAC_SAMPLE_RATE_8_KHZ;</div>
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;      <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;        <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;Unsupported rate: %d&quot;</span>, rate);</div>
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;        <span class="keywordflow">return</span> WM8960_ADC_DAC_SAMPLE_RATE_44_1_KHZ;</div>
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;    }</div>
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;  }</div>
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; </div>
<div class="line"><a name="l01055"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3ac8404aa88c0fbb927d1704059b94c2"> 1055</a></span>&#160;  mtb_wm8960_word_length_t <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3ac8404aa88c0fbb927d1704059b94c2">wordLength</a>(<span class="keywordtype">int</span> bits) {</div>
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;    <span class="keywordflow">switch</span> (bits) {</div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;      <span class="keywordflow">case</span> 16:</div>
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;        <span class="keywordflow">return</span> WM8960_WL_16BITS;</div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;      <span class="keywordflow">case</span> 20:</div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;        <span class="keywordflow">return</span> WM8960_WL_20BITS;</div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;      <span class="keywordflow">case</span> 24:</div>
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;        <span class="keywordflow">return</span> WM8960_WL_24BITS;</div>
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;      <span class="keywordflow">case</span> 32:</div>
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;        <span class="keywordflow">return</span> WM8960_WL_32BITS;</div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;      <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;        <a class="code" href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a>(<span class="stringliteral">&quot;Unsupported bits: %d&quot;</span>, bits);</div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;        <span class="keywordflow">return</span> WM8960_WL_16BITS;</div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;    }</div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;  }</div>
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; </div>
<div class="line"><a name="l01072"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a057bd9823253d287868d869ed21ca3ad"> 1072</a></span>&#160;  mtb_wm8960_mode_t <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a057bd9823253d287868d869ed21ca3ad">modeMasterSlave</a>(<span class="keywordtype">bool</span> is_master) {</div>
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;    <span class="keywordflow">return</span> is_master ? WM8960_MODE_MASTER : WM8960_MODE_SLAVE;</div>
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;  }</div>
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;};</div>
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; </div>
<div class="line"><a name="l01082"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html"> 1082</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html">AudioDriverWM8978Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l01084"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a1c1fb2fd124e8594d0d7141e4791c445"> 1084</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a1c1fb2fd124e8594d0d7141e4791c445">AudioDriverWM8978Class</a>() {}</div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; </div>
<div class="line"><a name="l01086"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ac449de25c72e7a8fbbcbf0bf6a8132ba"> 1086</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ac449de25c72e7a8fbbcbf0bf6a8132ba">begin</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg, <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;    <span class="keywordtype">bool</span> rc = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a> = codecCfg;</div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;    <span class="keyword">auto</span> i2c = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>.<a class="code" href="classaudio__driver_1_1_driver_pins.html#a052842a7d29e1b90185c1d57fc16f5d2">getI2CPins</a>(<a class="code" href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafa472015a17943a0dd74293f32ce088542">PinFunction::CODEC</a>);</div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;    <span class="keywordflow">if</span> (!i2c) {</div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;      rc = <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.begin();</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;      <span class="keyword">auto</span> i2c_pins = i2c.value();</div>
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;      rc = <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.begin(i2c_pins.sda, i2c_pins.scl, i2c_pins.frequency);</div>
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;    }</div>
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;    <span class="keywordtype">bool</span> is_dac = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#a53991a860287c34f4e412af745d4bb66">output_device</a> != <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ab839e055e11786256cd328d1b754a190">DAC_OUTPUT_NONE</a>;</div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;    <span class="keywordtype">bool</span> is_adc = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> != <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50a8fe55a6d1ba4245831483d4f3f3763ec">ADC_INPUT_NONE</a>;</div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.cfgADDA(is_dac, is_adc);</div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; </div>
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;    <span class="keywordtype">bool</span> is_mic = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> == <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50ac054fb9ae14a618d0425ded7f7f17bed">ADC_INPUT_LINE1</a> ||</div>
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;                  <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> == <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50a11f1754fb68fd4906c74368d9db39439">ADC_INPUT_ALL</a>;</div>
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;    <span class="keywordtype">bool</span> is_linein = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> == <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50ad6c7a8904c3ea81c09ac8558aa52d69d">ADC_INPUT_LINE2</a> ||</div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;                     <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> == <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50a11f1754fb68fd4906c74368d9db39439">ADC_INPUT_ALL</a>;</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;    <span class="keywordtype">bool</span> is_auxin = <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> == <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50ace325297580254e540b10b2ac682397d">ADC_INPUT_LINE3</a> ||</div>
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;                    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> == <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50a11f1754fb68fd4906c74368d9db39439">ADC_INPUT_ALL</a>;</div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.cfgInput(is_mic, is_linein, is_auxin);</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.cfgOutput(is_dac, <span class="keyword">false</span>);</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; </div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    <span class="keywordtype">int</span> bits = <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#afaffd514793abc1a9dcdc3236bfd3f93">toBits</a>(codecCfg.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#adeb4d7cae3090eef02034eec5efcb122">bits</a>);</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;    <span class="keywordflow">if</span> (bits &lt; 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    <span class="keywordtype">int</span> i2s = <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a4abfad10bc5430ad0f4c067ff5a4be1d">toI2S</a>(codecCfg.<a class="code" href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">i2s</a>.<a class="code" href="struct_i2_s_definition.html#a0a84595d973f46fb7cd70746e8d87cbb">fmt</a>);</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    <span class="keywordflow">if</span> (i2s &lt; 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.cfgI2S(i2s, bits);</div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; </div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;    <span class="comment">// setup initial default volume</span></div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">setVolume</a>(<a class="code" href="_audio_driver_config_8h.html#a2513e2bd0eb45a0ccefbbcd3f289ca47">DRIVER_DEFAULT_VOLUME</a>);</div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; </div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;    <span class="keywordflow">return</span> rc;</div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;  }</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; </div>
<div class="line"><a name="l01121"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ae3d8911013b1bab653ee2d819ce44bb3"> 1121</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ae3d8911013b1bab653ee2d819ce44bb3">end</a>()<span class="keyword"> override </span>{</div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">setVolume</a>(0);</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.cfgADDA(<span class="keyword">false</span>, <span class="keyword">false</span>);</div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;  }</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; </div>
<div class="line"><a name="l01127"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a3e7b3b9da454d773e945e4053f6e2b75"> 1127</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a3e7b3b9da454d773e945e4053f6e2b75">setMute</a>(<span class="keywordtype">bool</span> mute)<span class="keyword"> override </span>{</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;    <span class="keywordflow">if</span> (mute) {</div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;      <span class="keywordtype">int</span> tmp = <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>;</div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;      <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">setVolume</a>(0);</div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;      <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a> = tmp;</div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;      <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">setVolume</a>(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>);</div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;    }</div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;  }</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; </div>
<div class="line"><a name="l01138"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c"> 1138</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">setVolume</a>(<span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;    this-&gt;volume = <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>;</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;    <span class="keywordtype">int</span> scaled = map(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>, 0, 100, 0, 63);</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.setSPKvol(scaled);</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.setHPvol(scaled, scaled);</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;  }</div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; </div>
<div class="line"><a name="l01146"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a016f575b7c0ff5b13cb1b907f66de665"> 1146</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a016f575b7c0ff5b13cb1b907f66de665">getVolume</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>; }</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; </div>
<div class="line"><a name="l01148"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ad3455849766196a8ab522b2da63a05d8"> 1148</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ad3455849766196a8ab522b2da63a05d8">setInputVolume</a>(<span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>)<span class="keyword"> override </span>{</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;    <span class="keywordtype">int</span> scaled = map(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>, 0, 100, 0, 63);</div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.setMICgain(scaled);</div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.setAUXgain(scaled);</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>.setLINEINgain(scaled);</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;  }</div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; </div>
<div class="line"><a name="l01156"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a4510f634312ee31f499f25c2a02b8b39"> 1156</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a4510f634312ee31f499f25c2a02b8b39">isVolumeSupported</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; </div>
<div class="line"><a name="l01158"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a35ee14e345e291f347cb25380989aad9"> 1158</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a35ee14e345e291f347cb25380989aad9">isInputVolumeSupported</a>()<span class="keyword"> override </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; </div>
<div class="line"><a name="l01160"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#af94dae77a5112ae6e502daf9a59b29a1"> 1160</a></span>&#160;  WM8978&amp; <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#af94dae77a5112ae6e502daf9a59b29a1">driver</a>() {</div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>;</div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;  }</div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; </div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l01165"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9"> 1165</a></span>&#160;  WM8978 <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">wm8078</a>;</div>
<div class="line"><a name="l01166"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5"> 1166</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a> = 0;</div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; </div>
<div class="line"><a name="l01170"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a4abfad10bc5430ad0f4c067ff5a4be1d"> 1170</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a4abfad10bc5430ad0f4c067ff5a4be1d">toI2S</a>(<a class="code" href="group__enumerations.html#gad4b0ae616e0ce2bdb666f8e75ab686b2">i2s_format_t</a> fmt) {</div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;    <span class="keywordflow">switch</span> (fmt) {</div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#gad4b0ae616e0ce2bdb666f8e75ab686b2afe1e487005429f74e5cd4d2320db823a">I2S_NORMAL</a>:</div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;        <span class="keywordflow">return</span> 2;</div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#gad4b0ae616e0ce2bdb666f8e75ab686b2ae9f238a61c76626d78722324905fd50b">I2S_LEFT</a>:</div>
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;        <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#gad4b0ae616e0ce2bdb666f8e75ab686b2a22b65b9bffe0216e00cc6363d8bc8acd">I2S_RIGHT</a>:</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#gad4b0ae616e0ce2bdb666f8e75ab686b2ad1bdd515df80c99f3068af41f20d5821">I2S_DSP</a>:</div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;        <span class="keywordflow">return</span> 3;</div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;    }</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;  }</div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; </div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;  <span class="comment">// len: 0, 16 digits; 1, 20 digits; 2, 24 digits; 3, 32 digits;</span></div>
<div class="line"><a name="l01185"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#afaffd514793abc1a9dcdc3236bfd3f93"> 1185</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#afaffd514793abc1a9dcdc3236bfd3f93">toBits</a>(<a class="code" href="group__enumerations.html#ga69c4b817c522e31496b9b6b6cda2926d">sample_bits_t</a> bits) {</div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;    <span class="keywordflow">switch</span> (bits) {</div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926dae4d6b453890e812628bfbf9a28936377">BIT_LENGTH_16BITS</a>:</div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da6047cb713c098c82af0f232dbbaf57f5">BIT_LENGTH_20BITS</a>:</div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;        <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da1c0af9f48a2f6584dac0bee687d1669b">BIT_LENGTH_24BITS</a>:</div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;        <span class="keywordflow">return</span> 2;</div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da8f86f61920588df6362bc116369f4e02">BIT_LENGTH_32BITS</a>:</div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;        <span class="keywordflow">return</span> 3;</div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;    }</div>
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;    <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;  }</div>
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;};</div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; </div>
<div class="line"><a name="l01205"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html"> 1205</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html">AudioDriverWM8994Class</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l01207"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a85571b4bfeae93650d81dfc0bbe2c781"> 1207</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a85571b4bfeae93650d81dfc0bbe2c781">AudioDriverWM8994Class</a>(uint16_t <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a> = 0x1A) {</div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;    this-&gt;<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a> = <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>;</div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;  }</div>
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; </div>
<div class="line"><a name="l01211"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aa77bc0dbb16edbab31209efca6d609ac"> 1211</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aa77bc0dbb16edbab31209efca6d609ac">setI2CAddress</a>(uint16_t adr) { <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a> = adr; }</div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; </div>
<div class="line"><a name="l01213"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a2082348800b00b641ee937bc99c58e2a"> 1213</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a2082348800b00b641ee937bc99c58e2a">begin</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg, <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>) {</div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a> = codecCfg;</div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;    <span class="comment">// manage reset pin -&gt; active high</span></div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a1b3ee72f65915dcb4c875835d6e08aa1">setPAPower</a>(<span class="keyword">true</span>);</div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;    <a class="code" href="etc_8h.html#ab074fe18b447a055b6dbcd5f9a484db5">delay</a>(10);</div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#aed163ec96131f32e2b3316974a2bd9bc">p_pins</a> = &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>;</div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;    <span class="keywordtype">int</span> vol = map(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>, 0, 100, DEFAULT_VOLMIN, DEFAULT_VOLMAX);</div>
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;    uint32_t freq = codecCfg.<a class="code" href="classaudio__driver_1_1_codec_config.html#a5a8e72d47263001aff56c9f4aa976fa4">getRateNumeric</a>();</div>
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;    uint16_t outputDevice = <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#af4d0eb0d80056f9cdfc33796c83fd13f">getOutput</a>(<a class="code" href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">codec_cfg</a>.<a class="code" href="structcodec__config__t.html#a53991a860287c34f4e412af745d4bb66">output_device</a>);</div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; </div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;    <span class="keywordflow">return</span> wm8994_Init(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>, outputDevice, vol, freq, <a class="code" href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">getI2C</a>()) == 0;</div>
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;  }</div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; </div>
<div class="line"><a name="l01226"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aa2a08d0fd7c4e897419766a5a0ebc291"> 1226</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(<span class="keywordtype">bool</span> mute) {</div>
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;    uint32_t rc = mute ? wm8994_Pause(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>) : wm8994_Resume(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>);</div>
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;    <span class="keywordflow">return</span> rc == 0;</div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;  }</div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; </div>
<div class="line"><a name="l01231"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#ad7d51b9e21a345d836cb4cfe2df2152c"> 1231</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>) {</div>
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;    this-&gt;volume = <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>;</div>
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;    <span class="keywordtype">int</span> vol = map(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>, 0, 100, DEFAULT_VOLMIN, DEFAULT_VOLMAX);</div>
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;    <span class="keywordflow">return</span> wm8994_SetVolume(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>, vol) == 0;</div>
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;  }</div>
<div class="line"><a name="l01236"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aac9746ddc550ec176b0957affafbdbe7"> 1236</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a>; }</div>
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; </div>
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l01239"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4"> 1239</a></span>&#160;  uint16_t <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>;</div>
<div class="line"><a name="l01240"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aed48ca0bcd2162fd4fd495873e2631f5"> 1240</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aed48ca0bcd2162fd4fd495873e2631f5">volume</a> = 100;</div>
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; </div>
<div class="line"><a name="l01242"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a5117a0a714bc6ffce07a792ca2b5c872"> 1242</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a5117a0a714bc6ffce07a792ca2b5c872">deinit</a>() {</div>
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;    <span class="keywordtype">int</span> cnt = wm8994_Stop(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>, AUDIO_MUTE_ON);</div>
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;    cnt += wm8994_Reset(<a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">deviceAddr</a>);</div>
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;    <a class="code" href="classaudio__driver_1_1_audio_driver.html#a1b3ee72f65915dcb4c875835d6e08aa1">setPAPower</a>(<span class="keyword">false</span>);</div>
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;    <span class="keywordflow">return</span> cnt == 0;</div>
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;  }</div>
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; </div>
<div class="line"><a name="l01249"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#af4d0eb0d80056f9cdfc33796c83fd13f"> 1249</a></span>&#160;  uint16_t <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#af4d0eb0d80056f9cdfc33796c83fd13f">getOutput</a>(<a class="code" href="group__audio__driver.html#ga9144c83baaa7ebeaaecb236f9e21d264">output_device_t</a> output_device) {</div>
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;    <span class="keywordflow">switch</span> (output_device) {</div>
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ab839e055e11786256cd328d1b754a190">DAC_OUTPUT_NONE</a>:</div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264a11a8487d0e17c9ac1d194c4f99974c85">DAC_OUTPUT_LINE1</a>:</div>
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;        <span class="keywordflow">return</span> OUTPUT_DEVICE_SPEAKER;</div>
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ae7351d9cbd1c1c3cd76bf4665e8d0cca">DAC_OUTPUT_LINE2</a>:</div>
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;        <span class="keywordflow">return</span> OUTPUT_DEVICE_HEADPHONE;</div>
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264a9f3f48105f92c53bfcc4d9546f666c43">DAC_OUTPUT_ALL</a>:</div>
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;        <span class="keywordflow">return</span> OUTPUT_DEVICE_BOTH;</div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;    }</div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;    <span class="keywordflow">return</span> OUTPUT_DEVICE_BOTH;</div>
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;  }</div>
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;};</div>
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; </div>
<div class="line"><a name="l01269"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html"> 1269</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html">AudioDriverLyratMiniClass</a> : <span class="keyword">public</span> <a class="code" href="classaudio__driver_1_1_audio_driver.html">AudioDriver</a> {</div>
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l01271"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a61f1b9f3a7b3cb76ade6f9b7d9ba984b"> 1271</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a61f1b9f3a7b3cb76ade6f9b7d9ba984b">begin</a>(<a class="code" href="classaudio__driver_1_1_codec_config.html">CodecConfig</a> codecCfg, <a class="code" href="classaudio__driver_1_1_driver_pins.html">DriverPins</a> &amp;<a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>) {</div>
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;    <span class="keywordtype">int</span> rc = 0;</div>
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;    <span class="keywordflow">if</span> (codecCfg.<a class="code" href="structcodec__config__t.html#a53991a860287c34f4e412af745d4bb66">output_device</a> != <a class="code" href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ab839e055e11786256cd328d1b754a190">DAC_OUTPUT_NONE</a>)</div>
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;      rc += !<a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3c1eef9acc56cd24d5d29bc64e57944a">dac</a>.<a class="code" href="classaudio__driver_1_1_audio_driver.html#a2082348800b00b641ee937bc99c58e2a">begin</a>(codecCfg, <a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>);</div>
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;    <span class="keywordflow">if</span> (codecCfg.<a class="code" href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">input_device</a> != <a class="code" href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50a8fe55a6d1ba4245831483d4f3f3763ec">ADC_INPUT_NONE</a>)</div>
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;      rc += !<a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3b34dcbd1ff557bb23983bc362b24fdb">adc</a>.<a class="code" href="classaudio__driver_1_1_audio_driver.html#a2082348800b00b641ee937bc99c58e2a">begin</a>(codecCfg, <a class="code" href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">pins</a>);</div>
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;    <span class="keywordflow">return</span> rc == 0;</div>
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;  }</div>
<div class="line"><a name="l01279"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a1261028d75a47804743db047621c62ac"> 1279</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a1261028d75a47804743db047621c62ac">end</a>(<span class="keywordtype">void</span>) {</div>
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;    <span class="keywordtype">int</span> rc = 0;</div>
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;    rc += <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3c1eef9acc56cd24d5d29bc64e57944a">dac</a>.<a class="code" href="classaudio__driver_1_1_audio_driver.html#a063cb6038676fcc58f5a7cbc93ef27f1">end</a>();</div>
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;    rc += <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3b34dcbd1ff557bb23983bc362b24fdb">adc</a>.<a class="code" href="classaudio__driver_1_1_audio_driver.html#a063cb6038676fcc58f5a7cbc93ef27f1">end</a>();</div>
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;    <span class="keywordflow">return</span> rc == 0;</div>
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;  }</div>
<div class="line"><a name="l01285"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a70628dacff2793c2793f7f30a4b9e994"> 1285</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a70628dacff2793c2793f7f30a4b9e994">setMute</a>(<span class="keywordtype">bool</span> enable) { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3c1eef9acc56cd24d5d29bc64e57944a">dac</a>.<a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">setMute</a>(enable); }</div>
<div class="line"><a name="l01286"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#ad7d51b9e21a345d836cb4cfe2df2152c"> 1286</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(<span class="keywordtype">int</span> volume) { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3c1eef9acc56cd24d5d29bc64e57944a">dac</a>.<a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(volume); }</div>
<div class="line"><a name="l01287"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#aac9746ddc550ec176b0957affafbdbe7"> 1287</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>() { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3c1eef9acc56cd24d5d29bc64e57944a">dac</a>.<a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>(); }</div>
<div class="line"><a name="l01288"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#acd5d071057ce19f3718940329d202ef8"> 1288</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#acd5d071057ce19f3718940329d202ef8">setInputVolume</a>(<span class="keywordtype">int</span> volume) { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3b34dcbd1ff557bb23983bc362b24fdb">adc</a>.<a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">setVolume</a>(volume); }</div>
<div class="line"><a name="l01289"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#ad8b76620dd779abcf0428af2dc3b56cd"> 1289</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#ad8b76620dd779abcf0428af2dc3b56cd">getInputVolume</a>() { <span class="keywordflow">return</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3b34dcbd1ff557bb23983bc362b24fdb">adc</a>.<a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#aac9746ddc550ec176b0957affafbdbe7">getVolume</a>(); }</div>
<div class="line"><a name="l01290"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a935ad3a2898c94e433a1da3b948dff72"> 1290</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a935ad3a2898c94e433a1da3b948dff72">isInputVolumeSupported</a>() { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; </div>
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l01293"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3c1eef9acc56cd24d5d29bc64e57944a"> 1293</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html">AudioDriverES8311Class</a> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3c1eef9acc56cd24d5d29bc64e57944a">dac</a>;</div>
<div class="line"><a name="l01294"></a><span class="lineno"><a class="line" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3b34dcbd1ff557bb23983bc362b24fdb"> 1294</a></span>&#160;  <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html">AudioDriverES7243Class</a> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3b34dcbd1ff557bb23983bc362b24fdb">adc</a>;</div>
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;};</div>
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; </div>
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;<span class="comment">// -- Drivers</span></div>
<div class="line"><a name="l01299"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga6e512f44cc6db0994d6b1617abcc93b0"> 1299</a></span>&#160;<span class="comment"></span><span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_c101_class.html">AudioDriverAC101Class</a> <a class="code" href="group__audio__driver.html#ga6e512f44cc6db0994d6b1617abcc93b0">AudioDriverAC101</a>;</div>
<div class="line"><a name="l01301"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga9752ab43ee1dc1a25230ddfbd0916c15"> 1301</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html">AudioDriverCS43l22Class</a> <a class="code" href="group__audio__driver.html#ga9752ab43ee1dc1a25230ddfbd0916c15">AudioDriverCS43l22</a>;</div>
<div class="line"><a name="l01303"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga4c214e0234a9999990e57646e330b6ac"> 1303</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7210_class.html">AudioDriverES7210Class</a> <a class="code" href="group__audio__driver.html#ga4c214e0234a9999990e57646e330b6ac">AudioDriverES7210</a>;</div>
<div class="line"><a name="l01305"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga64fcfa236c4e6cf9b438698efcac5fa4"> 1305</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243_class.html">AudioDriverES7243Class</a> <a class="code" href="group__audio__driver.html#ga64fcfa236c4e6cf9b438698efcac5fa4">AudioDriverES7243</a>;</div>
<div class="line"><a name="l01307"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga9523811ed2db337675698f6f59f4316c"> 1307</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html">AudioDriverES7243eClass</a> <a class="code" href="group__audio__driver.html#ga9523811ed2db337675698f6f59f4316c">AudioDriverES7243e</a>;</div>
<div class="line"><a name="l01309"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga5a1114aae6283ef58238ffbd5afd140e"> 1309</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8156_class.html">AudioDriverES8156Class</a> <a class="code" href="group__audio__driver.html#ga5a1114aae6283ef58238ffbd5afd140e">AudioDriverES8156</a>;</div>
<div class="line"><a name="l01311"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga0cd510e086f73322b9a751a00eee2c1e"> 1311</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8311_class.html">AudioDriverES8311Class</a> <a class="code" href="group__audio__driver.html#ga0cd510e086f73322b9a751a00eee2c1e">AudioDriverES8311</a>;</div>
<div class="line"><a name="l01313"></a><span class="lineno"><a class="line" href="group__audio__driver.html#gaeaa8dbd90738b9ed5eb727ddaf322bd7"> 1313</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8374_class.html">AudioDriverES8374Class</a> <a class="code" href="group__audio__driver.html#gaeaa8dbd90738b9ed5eb727ddaf322bd7">AudioDriverES8374</a>;</div>
<div class="line"><a name="l01315"></a><span class="lineno"><a class="line" href="group__audio__driver.html#gad404af509b8a5ae73c689d6faa3d54df"> 1315</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_e_s8388_class.html">AudioDriverES8388Class</a> <a class="code" href="group__audio__driver.html#gad404af509b8a5ae73c689d6faa3d54df">AudioDriverES8388</a>;</div>
<div class="line"><a name="l01317"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga9edaa629f0334ef75e1666c847bcb3c3"> 1317</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8960_class.html">AudioDriverWM8960Class</a> <a class="code" href="group__audio__driver.html#ga9edaa629f0334ef75e1666c847bcb3c3">AudioDriverWM8960</a>;</div>
<div class="line"><a name="l01319"></a><span class="lineno"><a class="line" href="group__audio__driver.html#gae422be678e9a5cc45b187b167f40ac43"> 1319</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8978_class.html">AudioDriverWM8978Class</a> <a class="code" href="group__audio__driver.html#gae422be678e9a5cc45b187b167f40ac43">AudioDriverWM8978</a>;</div>
<div class="line"><a name="l01321"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga0d7c21e6e7b5d9dd9e5937c57c60fb8f"> 1321</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_w_m8994_class.html">AudioDriverWM8994Class</a> <a class="code" href="group__audio__driver.html#ga0d7c21e6e7b5d9dd9e5937c57c60fb8f">AudioDriverWM8994</a>;</div>
<div class="line"><a name="l01323"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga3c281a9dabe9c42b609f386a515d7082"> 1323</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html">AudioDriverLyratMiniClass</a> <a class="code" href="group__audio__driver.html#ga3c281a9dabe9c42b609f386a515d7082">AudioDriverLyratMini</a>;</div>
<div class="line"><a name="l01325"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga3fee80a3a7d33b4cd0af36720e919be4"> 1325</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_no_driver_class.html">NoDriverClass</a> <a class="code" href="group__audio__driver.html#ga3fee80a3a7d33b4cd0af36720e919be4">NoDriver</a>;</div>
<div class="line"><a name="l01327"></a><span class="lineno"><a class="line" href="group__audio__driver.html#gaf75ddf37a3c0e9318d1b22be33ea1059"> 1327</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_a_d1938_class.html">AudioDriverAD1938Class</a> <a class="code" href="group__audio__driver.html#gaf75ddf37a3c0e9318d1b22be33ea1059">AudioDriverAD1938</a>;</div>
<div class="line"><a name="l01329"></a><span class="lineno"><a class="line" href="group__audio__driver.html#ga83d13359511c6ee2c627b33b94588ad5"> 1329</a></span>&#160;<span class="keyword">static</span> <a class="code" href="classaudio__driver_1_1_audio_driver_c_s42448_class.html">AudioDriverCS42448Class</a> <a class="code" href="group__audio__driver.html#ga83d13359511c6ee2c627b33b94588ad5">AudioDriverCS42448</a>;</div>
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; </div>
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;}  <span class="comment">// namespace audio_driver</span></div>
<div class="ttc" id="a_audio_driver_config_8h_html_a2513e2bd0eb45a0ccefbbcd3f289ca47"><div class="ttname"><a href="_audio_driver_config_8h.html#a2513e2bd0eb45a0ccefbbcd3f289ca47">DRIVER_DEFAULT_VOLUME</a></div><div class="ttdeci">#define DRIVER_DEFAULT_VOLUME</div><div class="ttdef"><b>Definition:</b> AudioDriverConfig.h:5</div></div>
<div class="ttc" id="a_common_8h_html"><div class="ttname"><a href="_common_8h.html">Common.h</a></div></div>
<div class="ttc" id="a_common_8h_html_a2618c097a9f7213a8b01afbcf0d3936e"><div class="ttname"><a href="_common_8h.html#a2618c097a9f7213a8b01afbcf0d3936e">RESULT_OK</a></div><div class="ttdeci">#define RESULT_OK</div><div class="ttdoc">Fixed Definitions.</div><div class="ttdef"><b>Definition:</b> Common.h:15</div></div>
<div class="ttc" id="a_common_8h_html_ga57493d56aec72d0d539dced15a738c50a11f1754fb68fd4906c74368d9db39439"><div class="ttname"><a href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50a11f1754fb68fd4906c74368d9db39439">ADC_INPUT_ALL</a></div><div class="ttdeci">@ ADC_INPUT_ALL</div><div class="ttdef"><b>Definition:</b> Common.h:40</div></div>
<div class="ttc" id="a_common_8h_html_ga57493d56aec72d0d539dced15a738c50a8fe55a6d1ba4245831483d4f3f3763ec"><div class="ttname"><a href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50a8fe55a6d1ba4245831483d4f3f3763ec">ADC_INPUT_NONE</a></div><div class="ttdeci">@ ADC_INPUT_NONE</div><div class="ttdef"><b>Definition:</b> Common.h:36</div></div>
<div class="ttc" id="a_common_8h_html_ga57493d56aec72d0d539dced15a738c50ac054fb9ae14a618d0425ded7f7f17bed"><div class="ttname"><a href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50ac054fb9ae14a618d0425ded7f7f17bed">ADC_INPUT_LINE1</a></div><div class="ttdeci">@ ADC_INPUT_LINE1</div><div class="ttdef"><b>Definition:</b> Common.h:37</div></div>
<div class="ttc" id="a_common_8h_html_ga57493d56aec72d0d539dced15a738c50ace325297580254e540b10b2ac682397d"><div class="ttname"><a href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50ace325297580254e540b10b2ac682397d">ADC_INPUT_LINE3</a></div><div class="ttdeci">@ ADC_INPUT_LINE3</div><div class="ttdef"><b>Definition:</b> Common.h:39</div></div>
<div class="ttc" id="a_common_8h_html_ga57493d56aec72d0d539dced15a738c50ad6c7a8904c3ea81c09ac8558aa52d69d"><div class="ttname"><a href="_common_8h.html#ga57493d56aec72d0d539dced15a738c50ad6c7a8904c3ea81c09ac8558aa52d69d">ADC_INPUT_LINE2</a></div><div class="ttdeci">@ ADC_INPUT_LINE2</div><div class="ttdef"><b>Definition:</b> Common.h:38</div></div>
<div class="ttc" id="a_common_8h_html_ga69c4b817c522e31496b9b6b6cda2926da1c0af9f48a2f6584dac0bee687d1669b"><div class="ttname"><a href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da1c0af9f48a2f6584dac0bee687d1669b">BIT_LENGTH_24BITS</a></div><div class="ttdeci">@ BIT_LENGTH_24BITS</div><div class="ttdef"><b>Definition:</b> Common.h:101</div></div>
<div class="ttc" id="a_common_8h_html_ga69c4b817c522e31496b9b6b6cda2926da5ce8847b699a432cbd497d74d3fd3177"><div class="ttname"><a href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da5ce8847b699a432cbd497d74d3fd3177">BIT_LENGTH_18BITS</a></div><div class="ttdeci">@ BIT_LENGTH_18BITS</div><div class="ttdef"><b>Definition:</b> Common.h:99</div></div>
<div class="ttc" id="a_common_8h_html_ga69c4b817c522e31496b9b6b6cda2926da6047cb713c098c82af0f232dbbaf57f5"><div class="ttname"><a href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da6047cb713c098c82af0f232dbbaf57f5">BIT_LENGTH_20BITS</a></div><div class="ttdeci">@ BIT_LENGTH_20BITS</div><div class="ttdef"><b>Definition:</b> Common.h:100</div></div>
<div class="ttc" id="a_common_8h_html_ga69c4b817c522e31496b9b6b6cda2926da8f86f61920588df6362bc116369f4e02"><div class="ttname"><a href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926da8f86f61920588df6362bc116369f4e02">BIT_LENGTH_32BITS</a></div><div class="ttdeci">@ BIT_LENGTH_32BITS</div><div class="ttdef"><b>Definition:</b> Common.h:102</div></div>
<div class="ttc" id="a_common_8h_html_ga69c4b817c522e31496b9b6b6cda2926dae4d6b453890e812628bfbf9a28936377"><div class="ttname"><a href="_common_8h.html#ga69c4b817c522e31496b9b6b6cda2926dae4d6b453890e812628bfbf9a28936377">BIT_LENGTH_16BITS</a></div><div class="ttdeci">@ BIT_LENGTH_16BITS</div><div class="ttdef"><b>Definition:</b> Common.h:98</div></div>
<div class="ttc" id="a_common_8h_html_ga767db1c20919e0b4bcbf95cf741042f8a348014ecbf51d251b388a237fccf3c8a"><div class="ttname"><a href="_common_8h.html#ga767db1c20919e0b4bcbf95cf741042f8a348014ecbf51d251b388a237fccf3c8a">CODEC_MODE_ENCODE</a></div><div class="ttdeci">@ CODEC_MODE_ENCODE</div><div class="ttdef"><b>Definition:</b> Common.h:146</div></div>
<div class="ttc" id="a_common_8h_html_ga767db1c20919e0b4bcbf95cf741042f8a6349277a4d314615383d79d7338b5c90"><div class="ttname"><a href="_common_8h.html#ga767db1c20919e0b4bcbf95cf741042f8a6349277a4d314615383d79d7338b5c90">CODEC_MODE_NONE</a></div><div class="ttdeci">@ CODEC_MODE_NONE</div><div class="ttdef"><b>Definition:</b> Common.h:145</div></div>
<div class="ttc" id="a_common_8h_html_ga767db1c20919e0b4bcbf95cf741042f8ab248669049fb7b52e3d2856c4cd5aa62"><div class="ttname"><a href="_common_8h.html#ga767db1c20919e0b4bcbf95cf741042f8ab248669049fb7b52e3d2856c4cd5aa62">CODEC_MODE_BOTH</a></div><div class="ttdeci">@ CODEC_MODE_BOTH</div><div class="ttdef"><b>Definition:</b> Common.h:148</div></div>
<div class="ttc" id="a_common_8h_html_ga767db1c20919e0b4bcbf95cf741042f8ac9c194b132e75e388d62e4b81b8b7ed3"><div class="ttname"><a href="_common_8h.html#ga767db1c20919e0b4bcbf95cf741042f8ac9c194b132e75e388d62e4b81b8b7ed3">CODEC_MODE_DECODE</a></div><div class="ttdeci">@ CODEC_MODE_DECODE</div><div class="ttdef"><b>Definition:</b> Common.h:147</div></div>
<div class="ttc" id="a_common_8h_html_ga9144c83baaa7ebeaaecb236f9e21d264a11a8487d0e17c9ac1d194c4f99974c85"><div class="ttname"><a href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264a11a8487d0e17c9ac1d194c4f99974c85">DAC_OUTPUT_LINE1</a></div><div class="ttdeci">@ DAC_OUTPUT_LINE1</div><div class="ttdef"><b>Definition:</b> Common.h:53</div></div>
<div class="ttc" id="a_common_8h_html_ga9144c83baaa7ebeaaecb236f9e21d264a9f3f48105f92c53bfcc4d9546f666c43"><div class="ttname"><a href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264a9f3f48105f92c53bfcc4d9546f666c43">DAC_OUTPUT_ALL</a></div><div class="ttdeci">@ DAC_OUTPUT_ALL</div><div class="ttdef"><b>Definition:</b> Common.h:55</div></div>
<div class="ttc" id="a_common_8h_html_ga9144c83baaa7ebeaaecb236f9e21d264ab839e055e11786256cd328d1b754a190"><div class="ttname"><a href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ab839e055e11786256cd328d1b754a190">DAC_OUTPUT_NONE</a></div><div class="ttdeci">@ DAC_OUTPUT_NONE</div><div class="ttdef"><b>Definition:</b> Common.h:52</div></div>
<div class="ttc" id="a_common_8h_html_ga9144c83baaa7ebeaaecb236f9e21d264ae7351d9cbd1c1c3cd76bf4665e8d0cca"><div class="ttname"><a href="_common_8h.html#ga9144c83baaa7ebeaaecb236f9e21d264ae7351d9cbd1c1c3cd76bf4665e8d0cca">DAC_OUTPUT_LINE2</a></div><div class="ttdeci">@ DAC_OUTPUT_LINE2</div><div class="ttdef"><b>Definition:</b> Common.h:54</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991ba1448cc64c77cf916c8d7f735c6374b37"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba1448cc64c77cf916c8d7f735c6374b37">RATE_44K</a></div><div class="ttdeci">@ RATE_44K</div><div class="ttdef"><b>Definition:</b> Common.h:81</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991ba3f394c7023481136a11456f4d6fd7674"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba3f394c7023481136a11456f4d6fd7674">RATE_24K</a></div><div class="ttdeci">@ RATE_24K</div><div class="ttdef"><b>Definition:</b> Common.h:79</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991ba48d81c4b3d3c47c2edaf53287a74440f"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba48d81c4b3d3c47c2edaf53287a74440f">RATE_22K</a></div><div class="ttdeci">@ RATE_22K</div><div class="ttdef"><b>Definition:</b> Common.h:78</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991ba635120f9ee8f66a9d42c4b3f5e2cf348"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba635120f9ee8f66a9d42c4b3f5e2cf348">RATE_128K</a></div><div class="ttdeci">@ RATE_128K</div><div class="ttdef"><b>Definition:</b> Common.h:86</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991ba6c34cf487fbecbdb9c7282a24e338cb2"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba6c34cf487fbecbdb9c7282a24e338cb2">RATE_8K</a></div><div class="ttdeci">@ RATE_8K</div><div class="ttdef"><b>Definition:</b> Common.h:75</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991ba91943b4ef802c7ff3aa4f4948870472c"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991ba91943b4ef802c7ff3aa4f4948870472c">RATE_88K</a></div><div class="ttdeci">@ RATE_88K</div><div class="ttdef"><b>Definition:</b> Common.h:84</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991baaf2afb3b8f1a2bd2b6487e7faf89e4ff"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991baaf2afb3b8f1a2bd2b6487e7faf89e4ff">RATE_176K</a></div><div class="ttdeci">@ RATE_176K</div><div class="ttdef"><b>Definition:</b> Common.h:87</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991bab22cf724e3c3bb37888df8870cc6f60b"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991bab22cf724e3c3bb37888df8870cc6f60b">RATE_32K</a></div><div class="ttdeci">@ RATE_32K</div><div class="ttdef"><b>Definition:</b> Common.h:80</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991bac23375dadba2f10d3166fc98207dcd0c"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991bac23375dadba2f10d3166fc98207dcd0c">RATE_96K</a></div><div class="ttdeci">@ RATE_96K</div><div class="ttdef"><b>Definition:</b> Common.h:85</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991baccef6e39d6855b77e2ec01e10095ea6b"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991baccef6e39d6855b77e2ec01e10095ea6b">RATE_11K</a></div><div class="ttdeci">@ RATE_11K</div><div class="ttdef"><b>Definition:</b> Common.h:76</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991baceb52239e4a6b2fcc88cb4851e7d31c6"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991baceb52239e4a6b2fcc88cb4851e7d31c6">RATE_64K</a></div><div class="ttdeci">@ RATE_64K</div><div class="ttdef"><b>Definition:</b> Common.h:83</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991bae713f819f76ea57722e5a1296fd77cf0"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991bae713f819f76ea57722e5a1296fd77cf0">RATE_16K</a></div><div class="ttdeci">@ RATE_16K</div><div class="ttdef"><b>Definition:</b> Common.h:77</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991baf72a585e7262a1b6a49e268f3672987d"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991baf72a585e7262a1b6a49e268f3672987d">RATE_48K</a></div><div class="ttdeci">@ RATE_48K</div><div class="ttdef"><b>Definition:</b> Common.h:82</div></div>
<div class="ttc" id="a_common_8h_html_ga9455c9aa894b64d5d3997a038141991bafa3a6c59d2bc607e34859a0afaf08707"><div class="ttname"><a href="_common_8h.html#ga9455c9aa894b64d5d3997a038141991bafa3a6c59d2bc607e34859a0afaf08707">RATE_192K</a></div><div class="ttdeci">@ RATE_192K</div><div class="ttdef"><b>Definition:</b> Common.h:88</div></div>
<div class="ttc" id="a_common_8h_html_gaac50a1392dd0aa905500c755148c556babdc5dee704be4efd4e644f493f962dff"><div class="ttname"><a href="_common_8h.html#gaac50a1392dd0aa905500c755148c556babdc5dee704be4efd4e644f493f962dff">CHANNELS2</a></div><div class="ttdeci">@ CHANNELS2</div><div class="ttdef"><b>Definition:</b> Common.h:159</div></div>
<div class="ttc" id="a_common_8h_html_gaac50a1392dd0aa905500c755148c556bac42e75839720fb3fa179d1c1e73f3324"><div class="ttname"><a href="_common_8h.html#gaac50a1392dd0aa905500c755148c556bac42e75839720fb3fa179d1c1e73f3324">CHANNELS16</a></div><div class="ttdeci">@ CHANNELS16</div><div class="ttdef"><b>Definition:</b> Common.h:161</div></div>
<div class="ttc" id="a_common_8h_html_gaac50a1392dd0aa905500c755148c556bacdf4043f56ef6e3313f72a483587ebc7"><div class="ttname"><a href="_common_8h.html#gaac50a1392dd0aa905500c755148c556bacdf4043f56ef6e3313f72a483587ebc7">CHANNELS8</a></div><div class="ttdeci">@ CHANNELS8</div><div class="ttdef"><b>Definition:</b> Common.h:160</div></div>
<div class="ttc" id="a_common_8h_html_gac5dc971b3e58c17abd8b5b946b759fb1a08a9bf3d23d135d4e85f03e198e1c005"><div class="ttname"><a href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a08a9bf3d23d135d4e85f03e198e1c005">MIC_GAIN_15DB</a></div><div class="ttdeci">@ MIC_GAIN_15DB</div><div class="ttdef"><b>Definition:</b> Common.h:131</div></div>
<div class="ttc" id="a_common_8h_html_gac5dc971b3e58c17abd8b5b946b759fb1a1fe1c54eb344f0f7a80272ce2f24cb44"><div class="ttname"><a href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a1fe1c54eb344f0f7a80272ce2f24cb44">MIC_GAIN_6DB</a></div><div class="ttdeci">@ MIC_GAIN_6DB</div><div class="ttdef"><b>Definition:</b> Common.h:128</div></div>
<div class="ttc" id="a_common_8h_html_gac5dc971b3e58c17abd8b5b946b759fb1a3132f2959b8d99581690ecb1adf62bd2"><div class="ttname"><a href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a3132f2959b8d99581690ecb1adf62bd2">MIC_GAIN_9DB</a></div><div class="ttdeci">@ MIC_GAIN_9DB</div><div class="ttdef"><b>Definition:</b> Common.h:129</div></div>
<div class="ttc" id="a_common_8h_html_gac5dc971b3e58c17abd8b5b946b759fb1a403715f5d3e58d8a2bf28a6a5fc5cbfb"><div class="ttname"><a href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a403715f5d3e58d8a2bf28a6a5fc5cbfb">MIC_GAIN_24DB</a></div><div class="ttdeci">@ MIC_GAIN_24DB</div><div class="ttdef"><b>Definition:</b> Common.h:134</div></div>
<div class="ttc" id="a_common_8h_html_gac5dc971b3e58c17abd8b5b946b759fb1a408342d4f4c39fc3bfbda1b3b8255f03"><div class="ttname"><a href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a408342d4f4c39fc3bfbda1b3b8255f03">MIC_GAIN_MAX</a></div><div class="ttdeci">@ MIC_GAIN_MAX</div><div class="ttdef"><b>Definition:</b> Common.h:135</div></div>
<div class="ttc" id="a_common_8h_html_gac5dc971b3e58c17abd8b5b946b759fb1a44589f8247f04887c306432df8a86049"><div class="ttname"><a href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1a44589f8247f04887c306432df8a86049">MIC_GAIN_0DB</a></div><div class="ttdeci">@ MIC_GAIN_0DB</div><div class="ttdef"><b>Definition:</b> Common.h:126</div></div>
<div class="ttc" id="a_common_8h_html_gac5dc971b3e58c17abd8b5b946b759fb1aac5d753f722c1efce8e2d76002143c4d"><div class="ttname"><a href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1aac5d753f722c1efce8e2d76002143c4d">MIC_GAIN_12DB</a></div><div class="ttdeci">@ MIC_GAIN_12DB</div><div class="ttdef"><b>Definition:</b> Common.h:130</div></div>
<div class="ttc" id="a_common_8h_html_gac5dc971b3e58c17abd8b5b946b759fb1ac039cad318ebaf20edec4ab8105a6ede"><div class="ttname"><a href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1ac039cad318ebaf20edec4ab8105a6ede">MIC_GAIN_18DB</a></div><div class="ttdeci">@ MIC_GAIN_18DB</div><div class="ttdef"><b>Definition:</b> Common.h:132</div></div>
<div class="ttc" id="a_common_8h_html_gac5dc971b3e58c17abd8b5b946b759fb1ae69a8a09d15387b72842cc72d1590e78"><div class="ttname"><a href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1ae69a8a09d15387b72842cc72d1590e78">MIC_GAIN_21DB</a></div><div class="ttdeci">@ MIC_GAIN_21DB</div><div class="ttdef"><b>Definition:</b> Common.h:133</div></div>
<div class="ttc" id="a_common_8h_html_gac5dc971b3e58c17abd8b5b946b759fb1afe511acf91423b954d1f6cad90682809"><div class="ttname"><a href="_common_8h.html#gac5dc971b3e58c17abd8b5b946b759fb1afe511acf91423b954d1f6cad90682809">MIC_GAIN_3DB</a></div><div class="ttdeci">@ MIC_GAIN_3DB</div><div class="ttdef"><b>Definition:</b> Common.h:127</div></div>
<div class="ttc" id="a_common_8h_html_gad4b0ae616e0ce2bdb666f8e75ab686b2a22b65b9bffe0216e00cc6363d8bc8acd"><div class="ttname"><a href="_common_8h.html#gad4b0ae616e0ce2bdb666f8e75ab686b2a22b65b9bffe0216e00cc6363d8bc8acd">I2S_RIGHT</a></div><div class="ttdeci">@ I2S_RIGHT</div><div class="ttdef"><b>Definition:</b> Common.h:114</div></div>
<div class="ttc" id="a_common_8h_html_gad4b0ae616e0ce2bdb666f8e75ab686b2ad1bdd515df80c99f3068af41f20d5821"><div class="ttname"><a href="_common_8h.html#gad4b0ae616e0ce2bdb666f8e75ab686b2ad1bdd515df80c99f3068af41f20d5821">I2S_DSP</a></div><div class="ttdeci">@ I2S_DSP</div><div class="ttdef"><b>Definition:</b> Common.h:115</div></div>
<div class="ttc" id="a_common_8h_html_gad4b0ae616e0ce2bdb666f8e75ab686b2ae9f238a61c76626d78722324905fd50b"><div class="ttname"><a href="_common_8h.html#gad4b0ae616e0ce2bdb666f8e75ab686b2ae9f238a61c76626d78722324905fd50b">I2S_LEFT</a></div><div class="ttdeci">@ I2S_LEFT</div><div class="ttdef"><b>Definition:</b> Common.h:113</div></div>
<div class="ttc" id="a_common_8h_html_gad4b0ae616e0ce2bdb666f8e75ab686b2afe1e487005429f74e5cd4d2320db823a"><div class="ttname"><a href="_common_8h.html#gad4b0ae616e0ce2bdb666f8e75ab686b2afe1e487005429f74e5cd4d2320db823a">I2S_NORMAL</a></div><div class="ttdeci">@ I2S_NORMAL</div><div class="ttdef"><b>Definition:</b> Common.h:112</div></div>
<div class="ttc" id="a_common_8h_html_gadebb589e2ab53e2443229481d9047b47a3a9543e231d74dbeceb3bcb1d71bc95c"><div class="ttname"><a href="_common_8h.html#gadebb589e2ab53e2443229481d9047b47a3a9543e231d74dbeceb3bcb1d71bc95c">MODE_MASTER</a></div><div class="ttdeci">@ MODE_MASTER</div><div class="ttdef"><b>Definition:</b> Common.h:66</div></div>
<div class="ttc" id="a_common_8h_html_gadebb589e2ab53e2443229481d9047b47a56670f46c5fa5bad99f7205d77a978e1"><div class="ttname"><a href="_common_8h.html#gadebb589e2ab53e2443229481d9047b47a56670f46c5fa5bad99f7205d77a978e1">MODE_SLAVE</a></div><div class="ttdeci">@ MODE_SLAVE</div><div class="ttdef"><b>Definition:</b> Common.h:65</div></div>
<div class="ttc" id="a_driver_pins_8h_html"><div class="ttname"><a href="_driver_pins_8h.html">DriverPins.h</a></div></div>
<div class="ttc" id="a_logger_8c_html_a5ca2348ac26af72e565d526564f2e696"><div class="ttname"><a href="_logger_8c.html#a5ca2348ac26af72e565d526564f2e696">AD_LOGE</a></div><div class="ttdeci">void AD_LOGE(const char *fmr,...)</div><div class="ttdef"><b>Definition:</b> Logger.c:46</div></div>
<div class="ttc" id="a_logger_8c_html_a9ad68b9be1a9751690256858a3b16036"><div class="ttname"><a href="_logger_8c.html#a9ad68b9be1a9751690256858a3b16036">AD_LOGD</a></div><div class="ttdeci">void AD_LOGD(const char *fmr,...)</div><div class="ttdef"><b>Definition:</b> Logger.c:10</div></div>
<div class="ttc" id="a_logger_8c_html_ada3b7c7d836d0f21f2bd2f945c997294"><div class="ttname"><a href="_logger_8c.html#ada3b7c7d836d0f21f2bd2f945c997294">AD_LOGI</a></div><div class="ttdeci">void AD_LOGI(const char *fmr,...)</div><div class="ttdef"><b>Definition:</b> Logger.c:22</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_c101_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_c101_class.html">audio_driver::AudioDriverAC101Class</a></div><div class="ttdoc">Driver API for AC101 codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:325</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_c101_class_html_a5117a0a714bc6ffce07a792ca2b5c872"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_c101_class.html#a5117a0a714bc6ffce07a792ca2b5c872">audio_driver::AudioDriverAC101Class::deinit</a></div><div class="ttdeci">bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:341</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_c101_class_html_a52e4f3e14150fab743955aa7fb4a6af6"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_c101_class.html#a52e4f3e14150fab743955aa7fb4a6af6">audio_driver::AudioDriverAC101Class::init</a></div><div class="ttdeci">bool init(codec_config_t codec_cfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:338</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_c101_class_html_aa2a08d0fd7c4e897419766a5a0ebc291"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_c101_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">audio_driver::AudioDriverAC101Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute)</div><div class="ttdef"><b>Definition:</b> Driver.h:327</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_c101_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_c101_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverAC101Class::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:331</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_c101_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_c101_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverAC101Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:328</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_c101_class_html_ae66e6d7efecbaf5dda6c0111da804ba9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_c101_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">audio_driver::AudioDriverAC101Class::configInterface</a></div><div class="ttdeci">bool configInterface(codec_mode_t mode, I2SDefinition iface)</div><div class="ttdef"><b>Definition:</b> Driver.h:345</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_c101_class_html_ae892b9ff017f1a8043dd40bd19b2beaa"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_c101_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">audio_driver::AudioDriverAC101Class::controlState</a></div><div class="ttdeci">bool controlState(codec_mode_t mode)</div><div class="ttdef"><b>Definition:</b> Driver.h:342</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html">audio_driver::AudioDriverAD1938Class</a></div><div class="ttdoc">Driver API for AD1938 TDS DAC/ADC.</div><div class="ttdef"><b>Definition:</b> Driver.h:355</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_a016f575b7c0ff5b13cb1b907f66de665"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a016f575b7c0ff5b13cb1b907f66de665">audio_driver::AudioDriverAD1938Class::getVolume</a></div><div class="ttdeci">int getVolume() override</div><div class="ttdef"><b>Definition:</b> Driver.h:407</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_a35ee14e345e291f347cb25380989aad9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a35ee14e345e291f347cb25380989aad9">audio_driver::AudioDriverAD1938Class::isInputVolumeSupported</a></div><div class="ttdeci">bool isInputVolumeSupported() override</div><div class="ttdef"><b>Definition:</b> Driver.h:410</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_a3e7b3b9da454d773e945e4053f6e2b75"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a3e7b3b9da454d773e945e4053f6e2b75">audio_driver::AudioDriverAD1938Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute) override</div><div class="ttdef"><b>Definition:</b> Driver.h:383</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_a41fd7cb715f8b7181f922885fad96c78"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a41fd7cb715f8b7181f922885fad96c78">audio_driver::AudioDriverAD1938Class::volumes</a></div><div class="ttdeci">int volumes[8]</div><div class="ttdef"><b>Definition:</b> Driver.h:419</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_a42db9a98715e0b6383cd493d5ca06a8e"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a42db9a98715e0b6383cd493d5ca06a8e">audio_driver::AudioDriverAD1938Class::pins</a></div><div class="ttdeci">DriverPins &amp; pins()</div><div class="ttdef"><b>Definition:</b> Driver.h:412</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_a4510f634312ee31f499f25c2a02b8b39"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a4510f634312ee31f499f25c2a02b8b39">audio_driver::AudioDriverAD1938Class::isVolumeSupported</a></div><div class="ttdeci">bool isVolumeSupported() override</div><div class="ttdef"><b>Definition:</b> Driver.h:409</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_a59ea4d70e5093706baadc42b6854b6ab"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a59ea4d70e5093706baadc42b6854b6ab">audio_driver::AudioDriverAD1938Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute, int line)</div><div class="ttdoc">Mute individual lines: only supported for some rare DACs.</div><div class="ttdef"><b>Definition:</b> Driver.h:385</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_a6442182dfc4c54fb16b002b6f15c86e4"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a6442182dfc4c54fb16b002b6f15c86e4">audio_driver::AudioDriverAD1938Class::setConfig</a></div><div class="ttdeci">virtual bool setConfig(CodecConfig codecCfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:378</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_a7a0a89d5e4591ae7606b271c64998d0f"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#a7a0a89d5e4591ae7606b271c64998d0f">audio_driver::AudioDriverAD1938Class::driver</a></div><div class="ttdeci">AD1938 &amp; driver()</div><div class="ttdef"><b>Definition:</b> Driver.h:413</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_aba72f3c7e37f01ac993d5c425dafc0f2"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aba72f3c7e37f01ac993d5c425dafc0f2">audio_driver::AudioDriverAD1938Class::end</a></div><div class="ttdeci">bool end(void) override</div><div class="ttdef"><b>Definition:</b> Driver.h:382</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_ac449de25c72e7a8fbbcbf0bf6a8132ba"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#ac449de25c72e7a8fbbcbf0bf6a8132ba">audio_driver::AudioDriverAD1938Class::begin</a></div><div class="ttdeci">bool begin(CodecConfig codecCfg, DriverPins &amp;pins) override</div><div class="ttdef"><b>Definition:</b> Driver.h:357</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_acbd95c2e119e985187376bafee363fcf"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#acbd95c2e119e985187376bafee363fcf">audio_driver::AudioDriverAD1938Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume, int line)</div><div class="ttdef"><b>Definition:</b> Driver.h:401</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_ad3455849766196a8ab522b2da63a05d8"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#ad3455849766196a8ab522b2da63a05d8">audio_driver::AudioDriverAD1938Class::setInputVolume</a></div><div class="ttdeci">bool setInputVolume(int volume) override</div><div class="ttdef"><b>Definition:</b> Driver.h:408</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_ad7e6263e14828b1df9e1bcea4f9fc67c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">audio_driver::AudioDriverAD1938Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume) override</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:392</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_aed163ec96131f32e2b3316974a2bd9bc"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed163ec96131f32e2b3316974a2bd9bc">audio_driver::AudioDriverAD1938Class::p_pins</a></div><div class="ttdeci">DriverPins * p_pins</div><div class="ttdef"><b>Definition:</b> Driver.h:417</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_aed48ca0bcd2162fd4fd495873e2631f5"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#aed48ca0bcd2162fd4fd495873e2631f5">audio_driver::AudioDriverAD1938Class::volume</a></div><div class="ttdeci">int volume</div><div class="ttdef"><b>Definition:</b> Driver.h:418</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_a_d1938_class_html_af28e9fa5b56c5bf81340eb1ef0a8c0d2"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_a_d1938_class.html#af28e9fa5b56c5bf81340eb1ef0a8c0d2">audio_driver::AudioDriverAD1938Class::ad1938</a></div><div class="ttdeci">AD1938 ad1938</div><div class="ttdef"><b>Definition:</b> Driver.h:416</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html">audio_driver::AudioDriverCS42448Class</a></div><div class="ttdoc">Driver API for CS42448 TDS DAC/ADC.</div><div class="ttdef"><b>Definition:</b> Driver.h:527</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_a016f575b7c0ff5b13cb1b907f66de665"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a016f575b7c0ff5b13cb1b907f66de665">audio_driver::AudioDriverCS42448Class::getVolume</a></div><div class="ttdeci">int getVolume() override</div><div class="ttdef"><b>Definition:</b> Driver.h:566</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_a33cb0c0c070cec0dd53d8ea4e24e4723"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a33cb0c0c070cec0dd53d8ea4e24e4723">audio_driver::AudioDriverCS42448Class::driver</a></div><div class="ttdeci">CS42448 &amp; driver()</div><div class="ttdef"><b>Definition:</b> Driver.h:575</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_a35ee14e345e291f347cb25380989aad9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a35ee14e345e291f347cb25380989aad9">audio_driver::AudioDriverCS42448Class::isInputVolumeSupported</a></div><div class="ttdeci">bool isInputVolumeSupported() override</div><div class="ttdef"><b>Definition:</b> Driver.h:572</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_a42db9a98715e0b6383cd493d5ca06a8e"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a42db9a98715e0b6383cd493d5ca06a8e">audio_driver::AudioDriverCS42448Class::pins</a></div><div class="ttdeci">DriverPins &amp; pins()</div><div class="ttdef"><b>Definition:</b> Driver.h:574</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_a4510f634312ee31f499f25c2a02b8b39"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4510f634312ee31f499f25c2a02b8b39">audio_driver::AudioDriverCS42448Class::isVolumeSupported</a></div><div class="ttdeci">bool isVolumeSupported() override</div><div class="ttdef"><b>Definition:</b> Driver.h:571</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_a4a31e31df24961acffdaec543a25a79f"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a4a31e31df24961acffdaec543a25a79f">audio_driver::AudioDriverCS42448Class::cs42448</a></div><div class="ttdeci">CS42448 cs42448</div><div class="ttdef"><b>Definition:</b> Driver.h:578</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_a5444d35c243eb935c725e3205b06016d"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a5444d35c243eb935c725e3205b06016d">audio_driver::AudioDriverCS42448Class::setMute</a></div><div class="ttdeci">bool setMute(bool enable) override</div><div class="ttdef"><b>Definition:</b> Driver.h:553</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_a6442182dfc4c54fb16b002b6f15c86e4"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a6442182dfc4c54fb16b002b6f15c86e4">audio_driver::AudioDriverCS42448Class::setConfig</a></div><div class="ttdeci">virtual bool setConfig(CodecConfig codecCfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:538</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_a7d6672ed23d1e6da839e84a34381b282"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#a7d6672ed23d1e6da839e84a34381b282">audio_driver::AudioDriverCS42448Class::setVolume</a></div><div class="ttdeci">bool setVolume(int dac, int volume)</div><div class="ttdef"><b>Definition:</b> Driver.h:562</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_aba72f3c7e37f01ac993d5c425dafc0f2"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aba72f3c7e37f01ac993d5c425dafc0f2">audio_driver::AudioDriverCS42448Class::end</a></div><div class="ttdeci">bool end(void) override</div><div class="ttdef"><b>Definition:</b> Driver.h:552</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_ac449de25c72e7a8fbbcbf0bf6a8132ba"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ac449de25c72e7a8fbbcbf0bf6a8132ba">audio_driver::AudioDriverCS42448Class::begin</a></div><div class="ttdeci">bool begin(CodecConfig codecCfg, DriverPins &amp;pins) override</div><div class="ttdef"><b>Definition:</b> Driver.h:529</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_ad3455849766196a8ab522b2da63a05d8"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad3455849766196a8ab522b2da63a05d8">audio_driver::AudioDriverCS42448Class::setInputVolume</a></div><div class="ttdeci">bool setInputVolume(int volume) override</div><div class="ttdef"><b>Definition:</b> Driver.h:567</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_ad7e6263e14828b1df9e1bcea4f9fc67c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">audio_driver::AudioDriverCS42448Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume) override</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:558</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_ad8d67cf9f0242d3b29e464ce9ae6d33f"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ad8d67cf9f0242d3b29e464ce9ae6d33f">audio_driver::AudioDriverCS42448Class::cfg</a></div><div class="ttdeci">CodecConfig cfg</div><div class="ttdef"><b>Definition:</b> Driver.h:581</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_ade3d888867e36d74b3cdc1cd3fe74c38"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#ade3d888867e36d74b3cdc1cd3fe74c38">audio_driver::AudioDriverCS42448Class::setMute</a></div><div class="ttdeci">bool setMute(bool enable, int line)</div><div class="ttdoc">Mute individual lines: only supported for some rare DACs.</div><div class="ttdef"><b>Definition:</b> Driver.h:554</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_aed163ec96131f32e2b3316974a2bd9bc"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed163ec96131f32e2b3316974a2bd9bc">audio_driver::AudioDriverCS42448Class::p_pins</a></div><div class="ttdeci">DriverPins * p_pins</div><div class="ttdef"><b>Definition:</b> Driver.h:579</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s42448_class_html_aed48ca0bcd2162fd4fd495873e2631f5"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s42448_class.html#aed48ca0bcd2162fd4fd495873e2631f5">audio_driver::AudioDriverCS42448Class::volume</a></div><div class="ttdeci">int volume</div><div class="ttdef"><b>Definition:</b> Driver.h:580</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html">audio_driver::AudioDriverCS43l22Class</a></div><div class="ttdoc">Driver API for the CS43l22 codec chip on 0x94 (0x4A&lt;&lt;1)</div><div class="ttdef"><b>Definition:</b> Driver.h:427</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_a2082348800b00b641ee937bc99c58e2a"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a2082348800b00b641ee937bc99c58e2a">audio_driver::AudioDriverCS43l22Class::begin</a></div><div class="ttdeci">virtual bool begin(CodecConfig codecCfg, DriverPins &amp;pins)</div><div class="ttdef"><b>Definition:</b> Driver.h:435</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_a4de4414c756798e6d4b5008c88a499f4"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a4de4414c756798e6d4b5008c88a499f4">audio_driver::AudioDriverCS43l22Class::deviceAddr</a></div><div class="ttdeci">uint16_t deviceAddr</div><div class="ttdef"><b>Definition:</b> Driver.h:475</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_a5117a0a714bc6ffce07a792ca2b5c872"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a5117a0a714bc6ffce07a792ca2b5c872">audio_driver::AudioDriverCS43l22Class::deinit</a></div><div class="ttdeci">bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:478</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_a6442182dfc4c54fb16b002b6f15c86e4"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#a6442182dfc4c54fb16b002b6f15c86e4">audio_driver::AudioDriverCS43l22Class::setConfig</a></div><div class="ttdeci">virtual bool setConfig(CodecConfig codecCfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:455</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_aa2a08d0fd7c4e897419766a5a0ebc291"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">audio_driver::AudioDriverCS43l22Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute)</div><div class="ttdef"><b>Definition:</b> Driver.h:463</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_aa77bc0dbb16edbab31209efca6d609ac"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aa77bc0dbb16edbab31209efca6d609ac">audio_driver::AudioDriverCS43l22Class::setI2CAddress</a></div><div class="ttdeci">void setI2CAddress(uint16_t adr)</div><div class="ttdef"><b>Definition:</b> Driver.h:433</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverCS43l22Class::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:472</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_ac2cbb9d16b18b1a987d1ef96c0ee460b"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#ac2cbb9d16b18b1a987d1ef96c0ee460b">audio_driver::AudioDriverCS43l22Class::getFrequency</a></div><div class="ttdeci">uint32_t getFrequency(samplerate_t rateNum)</div><div class="ttdef"><b>Definition:</b> Driver.h:485</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverCS43l22Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:468</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_aed48ca0bcd2162fd4fd495873e2631f5"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#aed48ca0bcd2162fd4fd495873e2631f5">audio_driver::AudioDriverCS43l22Class::volume</a></div><div class="ttdeci">int volume</div><div class="ttdef"><b>Definition:</b> Driver.h:476</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_af4d0eb0d80056f9cdfc33796c83fd13f"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#af4d0eb0d80056f9cdfc33796c83fd13f">audio_driver::AudioDriverCS43l22Class::getOutput</a></div><div class="ttdeci">uint16_t getOutput(output_device_t output_device)</div><div class="ttdef"><b>Definition:</b> Driver.h:507</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_c_s43l22_class_html_afd19e4a8c555c82d057b2749f2f15ed4"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_c_s43l22_class.html#afd19e4a8c555c82d057b2749f2f15ed4">audio_driver::AudioDriverCS43l22Class::AudioDriverCS43l22Class</a></div><div class="ttdeci">AudioDriverCS43l22Class(uint16_t deviceAddr=0x4A)</div><div class="ttdef"><b>Definition:</b> Driver.h:429</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7210_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7210_class.html">audio_driver::AudioDriverES7210Class</a></div><div class="ttdoc">Driver API for ES7210 codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:589</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7210_class_html_a5117a0a714bc6ffce07a792ca2b5c872"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#a5117a0a714bc6ffce07a792ca2b5c872">audio_driver::AudioDriverES7210Class::deinit</a></div><div class="ttdeci">bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:604</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7210_class_html_a52e4f3e14150fab743955aa7fb4a6af6"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#a52e4f3e14150fab743955aa7fb4a6af6">audio_driver::AudioDriverES7210Class::init</a></div><div class="ttdeci">bool init(codec_config_t codec_cfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:601</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7210_class_html_aa2a08d0fd7c4e897419766a5a0ebc291"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">audio_driver::AudioDriverES7210Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute)</div><div class="ttdef"><b>Definition:</b> Driver.h:591</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7210_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverES7210Class::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:596</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7210_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverES7210Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:592</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7210_class_html_ae66e6d7efecbaf5dda6c0111da804ba9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">audio_driver::AudioDriverES7210Class::configInterface</a></div><div class="ttdeci">bool configInterface(codec_mode_t mode, I2SDefinition iface)</div><div class="ttdef"><b>Definition:</b> Driver.h:609</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7210_class_html_ae892b9ff017f1a8043dd40bd19b2beaa"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">audio_driver::AudioDriverES7210Class::controlState</a></div><div class="ttdeci">bool controlState(codec_mode_t mode)</div><div class="ttdef"><b>Definition:</b> Driver.h:606</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7210_class_html_aed48ca0bcd2162fd4fd495873e2631f5"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7210_class.html#aed48ca0bcd2162fd4fd495873e2631f5">audio_driver::AudioDriverES7210Class::volume</a></div><div class="ttdeci">int volume</div><div class="ttdef"><b>Definition:</b> Driver.h:599</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243_class.html">audio_driver::AudioDriverES7243Class</a></div><div class="ttdoc">Driver API for Lyrat ES7243 codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:619</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243_class_html_a5117a0a714bc6ffce07a792ca2b5c872"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#a5117a0a714bc6ffce07a792ca2b5c872">audio_driver::AudioDriverES7243Class::deinit</a></div><div class="ttdeci">bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:637</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243_class_html_a52e4f3e14150fab743955aa7fb4a6af6"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#a52e4f3e14150fab743955aa7fb4a6af6">audio_driver::AudioDriverES7243Class::init</a></div><div class="ttdeci">bool init(codec_config_t codec_cfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:634</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243_class_html_aa2a08d0fd7c4e897419766a5a0ebc291"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">audio_driver::AudioDriverES7243Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute)</div><div class="ttdef"><b>Definition:</b> Driver.h:621</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverES7243Class::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:627</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverES7243Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:624</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243_class_html_ae66e6d7efecbaf5dda6c0111da804ba9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">audio_driver::AudioDriverES7243Class::configInterface</a></div><div class="ttdeci">bool configInterface(codec_mode_t mode, I2SDefinition iface)</div><div class="ttdef"><b>Definition:</b> Driver.h:642</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243_class_html_ae892b9ff017f1a8043dd40bd19b2beaa"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">audio_driver::AudioDriverES7243Class::controlState</a></div><div class="ttdeci">bool controlState(codec_mode_t mode)</div><div class="ttdef"><b>Definition:</b> Driver.h:639</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243e_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html">audio_driver::AudioDriverES7243eClass</a></div><div class="ttdoc">Driver API for ES7243e codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:653</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243e_class_html_a5117a0a714bc6ffce07a792ca2b5c872"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#a5117a0a714bc6ffce07a792ca2b5c872">audio_driver::AudioDriverES7243eClass::deinit</a></div><div class="ttdeci">bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:674</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243e_class_html_a52e4f3e14150fab743955aa7fb4a6af6"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#a52e4f3e14150fab743955aa7fb4a6af6">audio_driver::AudioDriverES7243eClass::init</a></div><div class="ttdeci">bool init(codec_config_t codec_cfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:671</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243e_class_html_aa2a08d0fd7c4e897419766a5a0ebc291"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">audio_driver::AudioDriverES7243eClass::setMute</a></div><div class="ttdeci">bool setMute(bool mute)</div><div class="ttdef"><b>Definition:</b> Driver.h:655</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243e_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverES7243eClass::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:662</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243e_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverES7243eClass::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:658</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243e_class_html_ae66e6d7efecbaf5dda6c0111da804ba9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">audio_driver::AudioDriverES7243eClass::configInterface</a></div><div class="ttdeci">bool configInterface(codec_mode_t mode, I2SDefinition iface)</div><div class="ttdef"><b>Definition:</b> Driver.h:679</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243e_class_html_ae892b9ff017f1a8043dd40bd19b2beaa"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">audio_driver::AudioDriverES7243eClass::controlState</a></div><div class="ttdeci">bool controlState(codec_mode_t mode)</div><div class="ttdef"><b>Definition:</b> Driver.h:676</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s7243e_class_html_aed48ca0bcd2162fd4fd495873e2631f5"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s7243e_class.html#aed48ca0bcd2162fd4fd495873e2631f5">audio_driver::AudioDriverES7243eClass::volume</a></div><div class="ttdeci">int volume</div><div class="ttdef"><b>Definition:</b> Driver.h:669</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8156_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8156_class.html">audio_driver::AudioDriverES8156Class</a></div><div class="ttdoc">Driver API for ES8156 codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:689</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8156_class_html_a5117a0a714bc6ffce07a792ca2b5c872"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#a5117a0a714bc6ffce07a792ca2b5c872">audio_driver::AudioDriverES8156Class::deinit</a></div><div class="ttdeci">bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:708</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8156_class_html_a52e4f3e14150fab743955aa7fb4a6af6"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#a52e4f3e14150fab743955aa7fb4a6af6">audio_driver::AudioDriverES8156Class::init</a></div><div class="ttdeci">bool init(codec_config_t codec_cfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:705</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8156_class_html_aa2a08d0fd7c4e897419766a5a0ebc291"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">audio_driver::AudioDriverES8156Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute)</div><div class="ttdef"><b>Definition:</b> Driver.h:691</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8156_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverES8156Class::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:698</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8156_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverES8156Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:694</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8156_class_html_ae66e6d7efecbaf5dda6c0111da804ba9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">audio_driver::AudioDriverES8156Class::configInterface</a></div><div class="ttdeci">bool configInterface(codec_mode_t mode, I2SDefinition iface)</div><div class="ttdef"><b>Definition:</b> Driver.h:713</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8156_class_html_ae892b9ff017f1a8043dd40bd19b2beaa"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8156_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">audio_driver::AudioDriverES8156Class::controlState</a></div><div class="ttdeci">bool controlState(codec_mode_t mode)</div><div class="ttdef"><b>Definition:</b> Driver.h:710</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8311_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8311_class.html">audio_driver::AudioDriverES8311Class</a></div><div class="ttdoc">Driver API for Lyrat ES8311 codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:723</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8311_class_html_a0a39ac8b472ea3560458401029e3920a"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a0a39ac8b472ea3560458401029e3920a">audio_driver::AudioDriverES8311Class::AudioDriverES8311Class</a></div><div class="ttdeci">AudioDriverES8311Class(int i2cAddr=0)</div><div class="ttdef"><b>Definition:</b> Driver.h:725</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8311_class_html_a5117a0a714bc6ffce07a792ca2b5c872"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a5117a0a714bc6ffce07a792ca2b5c872">audio_driver::AudioDriverES8311Class::deinit</a></div><div class="ttdeci">bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:749</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8311_class_html_a52e4f3e14150fab743955aa7fb4a6af6"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a52e4f3e14150fab743955aa7fb4a6af6">audio_driver::AudioDriverES8311Class::init</a></div><div class="ttdeci">bool init(codec_config_t codec_cfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:739</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8311_class_html_a962c50e2ca85425174e1cc8bd43720bd"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#a962c50e2ca85425174e1cc8bd43720bd">audio_driver::AudioDriverES8311Class::i2c_address</a></div><div class="ttdeci">int i2c_address</div><div class="ttdef"><b>Definition:</b> Driver.h:737</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8311_class_html_aa2a08d0fd7c4e897419766a5a0ebc291"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">audio_driver::AudioDriverES8311Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute)</div><div class="ttdef"><b>Definition:</b> Driver.h:726</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8311_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverES8311Class::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:730</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8311_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverES8311Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:727</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8311_class_html_ae66e6d7efecbaf5dda6c0111da804ba9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">audio_driver::AudioDriverES8311Class::configInterface</a></div><div class="ttdeci">bool configInterface(codec_mode_t mode, I2SDefinition iface)</div><div class="ttdef"><b>Definition:</b> Driver.h:754</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8311_class_html_ae892b9ff017f1a8043dd40bd19b2beaa"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8311_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">audio_driver::AudioDriverES8311Class::controlState</a></div><div class="ttdeci">bool controlState(codec_mode_t mode)</div><div class="ttdef"><b>Definition:</b> Driver.h:751</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8374_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8374_class.html">audio_driver::AudioDriverES8374Class</a></div><div class="ttdoc">Driver API for ES8374 codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:764</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8374_class_html_a5117a0a714bc6ffce07a792ca2b5c872"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a5117a0a714bc6ffce07a792ca2b5c872">audio_driver::AudioDriverES8374Class::deinit</a></div><div class="ttdeci">bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:789</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8374_class_html_a52e4f3e14150fab743955aa7fb4a6af6"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a52e4f3e14150fab743955aa7fb4a6af6">audio_driver::AudioDriverES8374Class::init</a></div><div class="ttdeci">bool init(codec_config_t codec_cfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:781</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8374_class_html_a962c50e2ca85425174e1cc8bd43720bd"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#a962c50e2ca85425174e1cc8bd43720bd">audio_driver::AudioDriverES8374Class::i2c_address</a></div><div class="ttdeci">int i2c_address</div><div class="ttdef"><b>Definition:</b> Driver.h:779</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8374_class_html_aa2a08d0fd7c4e897419766a5a0ebc291"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">audio_driver::AudioDriverES8374Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute)</div><div class="ttdef"><b>Definition:</b> Driver.h:767</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8374_class_html_aac1986dd7e9c20029acc313b225dd522"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#aac1986dd7e9c20029acc313b225dd522">audio_driver::AudioDriverES8374Class::AudioDriverES8374Class</a></div><div class="ttdeci">AudioDriverES8374Class(int i2cAddr=0)</div><div class="ttdef"><b>Definition:</b> Driver.h:766</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8374_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverES8374Class::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:772</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8374_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverES8374Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:768</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8374_class_html_ae66e6d7efecbaf5dda6c0111da804ba9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">audio_driver::AudioDriverES8374Class::configInterface</a></div><div class="ttdeci">bool configInterface(codec_mode_t mode, I2SDefinition iface)</div><div class="ttdef"><b>Definition:</b> Driver.h:794</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8374_class_html_ae892b9ff017f1a8043dd40bd19b2beaa"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8374_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">audio_driver::AudioDriverES8374Class::controlState</a></div><div class="ttdeci">bool controlState(codec_mode_t mode)</div><div class="ttdef"><b>Definition:</b> Driver.h:791</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html">audio_driver::AudioDriverES8388Class</a></div><div class="ttdoc">Driver API for ES8388 codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:804</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_a5117a0a714bc6ffce07a792ca2b5c872"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a5117a0a714bc6ffce07a792ca2b5c872">audio_driver::AudioDriverES8388Class::deinit</a></div><div class="ttdeci">bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:864</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_a52e4f3e14150fab743955aa7fb4a6af6"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a52e4f3e14150fab743955aa7fb4a6af6">audio_driver::AudioDriverES8388Class::init</a></div><div class="ttdeci">bool init(codec_config_t codec_cfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:861</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_a59ea4d70e5093706baadc42b6854b6ab"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a59ea4d70e5093706baadc42b6854b6ab">audio_driver::AudioDriverES8388Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute, int line)</div><div class="ttdoc">Mute individual lines: only supported for some rare DACs.</div><div class="ttdef"><b>Definition:</b> Driver.h:812</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_a7c6f401da703e11a283a1d6a1e607026"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a7c6f401da703e11a283a1d6a1e607026">audio_driver::AudioDriverES8388Class::line_active</a></div><div class="ttdeci">bool line_active[2]</div><div class="ttdef"><b>Definition:</b> Driver.h:859</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_a935ad3a2898c94e433a1da3b948dff72"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#a935ad3a2898c94e433a1da3b948dff72">audio_driver::AudioDriverES8388Class::isInputVolumeSupported</a></div><div class="ttdeci">bool isInputVolumeSupported()</div><div class="ttdef"><b>Definition:</b> Driver.h:856</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_aa2a08d0fd7c4e897419766a5a0ebc291"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">audio_driver::AudioDriverES8388Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute)</div><div class="ttdef"><b>Definition:</b> Driver.h:806</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverES8388Class::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:834</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_aadd8a57d9981d793494b96bfc9939699"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#aadd8a57d9981d793494b96bfc9939699">audio_driver::AudioDriverES8388Class::setMicrophoneGain</a></div><div class="ttdeci">bool setMicrophoneGain(es_mic_gain_t gain)</div><div class="ttdef"><b>Definition:</b> Driver.h:852</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_acd5d071057ce19f3718940329d202ef8"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#acd5d071057ce19f3718940329d202ef8">audio_driver::AudioDriverES8388Class::setInputVolume</a></div><div class="ttdeci">bool setInputVolume(int volume)</div><div class="ttdef"><b>Definition:</b> Driver.h:840</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverES8388Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:830</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_ae66e6d7efecbaf5dda6c0111da804ba9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#ae66e6d7efecbaf5dda6c0111da804ba9">audio_driver::AudioDriverES8388Class::configInterface</a></div><div class="ttdeci">bool configInterface(codec_mode_t mode, I2SDefinition iface)</div><div class="ttdef"><b>Definition:</b> Driver.h:869</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_e_s8388_class_html_ae892b9ff017f1a8043dd40bd19b2beaa"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_e_s8388_class.html#ae892b9ff017f1a8043dd40bd19b2beaa">audio_driver::AudioDriverES8388Class::controlState</a></div><div class="ttdeci">bool controlState(codec_mode_t mode)</div><div class="ttdef"><b>Definition:</b> Driver.h:866</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html">audio_driver::AudioDriver</a></div><div class="ttdoc">Abstract Driver API for codec chips.</div><div class="ttdef"><b>Definition:</b> Driver.h:188</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a0065b12757039a60467b6b12ccefc4ba"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a0065b12757039a60467b6b12ccefc4ba">audio_driver::AudioDriver::setMute</a></div><div class="ttdeci">virtual bool setMute(bool enable)=0</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a02060cfd35162a9112de61ebc3d5b974"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a02060cfd35162a9112de61ebc3d5b974">audio_driver::AudioDriver::isInputVolumeSupported</a></div><div class="ttdeci">virtual bool isInputVolumeSupported()</div><div class="ttdef"><b>Definition:</b> Driver.h:241</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a063cb6038676fcc58f5a7cbc93ef27f1"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a063cb6038676fcc58f5a7cbc93ef27f1">audio_driver::AudioDriver::end</a></div><div class="ttdeci">virtual bool end(void)</div><div class="ttdef"><b>Definition:</b> Driver.h:228</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a11bf855250acaa1afbe0b8251660800d"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a11bf855250acaa1afbe0b8251660800d">audio_driver::AudioDriver::setInputVolume</a></div><div class="ttdeci">virtual bool setInputVolume(int volume)</div><div class="ttdef"><b>Definition:</b> Driver.h:239</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a1b3ee72f65915dcb4c875835d6e08aa1"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a1b3ee72f65915dcb4c875835d6e08aa1">audio_driver::AudioDriver::setPAPower</a></div><div class="ttdeci">bool setPAPower(bool enable)</div><div class="ttdoc">Sets the PA Power pin to active or inactive.</div><div class="ttdef"><b>Definition:</b> Driver.h:246</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a2082348800b00b641ee937bc99c58e2a"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a2082348800b00b641ee937bc99c58e2a">audio_driver::AudioDriver::begin</a></div><div class="ttdeci">virtual bool begin(CodecConfig codecCfg, DriverPins &amp;pins)</div><div class="ttdef"><b>Definition:</b> Driver.h:190</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a22d2adeb316a5705b57114d4a5761017"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a22d2adeb316a5705b57114d4a5761017">audio_driver::AudioDriver::isVolumeSupported</a></div><div class="ttdeci">virtual bool isVolumeSupported()</div><div class="ttdef"><b>Definition:</b> Driver.h:240</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a4296f334f4441aae57fb5f43a0b77968"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a4296f334f4441aae57fb5f43a0b77968">audio_driver::AudioDriver::codec_cfg</a></div><div class="ttdeci">CodecConfig codec_cfg</div><div class="ttdef"><b>Definition:</b> Driver.h:257</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a42db9a98715e0b6383cd493d5ca06a8e"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a42db9a98715e0b6383cd493d5ca06a8e">audio_driver::AudioDriver::pins</a></div><div class="ttdeci">DriverPins &amp; pins()</div><div class="ttdef"><b>Definition:</b> Driver.h:243</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a43d1eddbaad3e8e0f25004acb9c29efc"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a43d1eddbaad3e8e0f25004acb9c29efc">audio_driver::AudioDriver::setVolume</a></div><div class="ttdeci">virtual bool setVolume(int volume)=0</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a4c34b96573571f4fc5b12099a9d04e5b"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a4c34b96573571f4fc5b12099a9d04e5b">audio_driver::AudioDriver::setMute</a></div><div class="ttdeci">virtual bool setMute(bool mute, int line)</div><div class="ttdoc">Mute individual lines: only supported for some rare DACs.</div><div class="ttdef"><b>Definition:</b> Driver.h:231</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a5913823f39bb4c4d7078b0e1a9cb0775"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a5913823f39bb4c4d7078b0e1a9cb0775">audio_driver::AudioDriver::getI2CAddress</a></div><div class="ttdeci">int getI2CAddress()</div><div class="ttdef"><b>Definition:</b> Driver.h:270</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a5e9dd2cbb2377c5ac866a5ccc26ff497"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a5e9dd2cbb2377c5ac866a5ccc26ff497">audio_driver::AudioDriver::deinit</a></div><div class="ttdeci">virtual bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:280</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a6442182dfc4c54fb16b002b6f15c86e4"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a6442182dfc4c54fb16b002b6f15c86e4">audio_driver::AudioDriver::setConfig</a></div><div class="ttdeci">virtual bool setConfig(CodecConfig codecCfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:204</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_a8895270f5503019b98f5c4df036754b4"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#a8895270f5503019b98f5c4df036754b4">audio_driver::AudioDriver::limitValue</a></div><div class="ttdeci">int limitValue(int volume, int min=0, int max=100)</div><div class="ttdef"><b>Definition:</b> Driver.h:289</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_aa6ef5ff45c46acc972bcf6686a7ae9eb"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#aa6ef5ff45c46acc972bcf6686a7ae9eb">audio_driver::AudioDriver::controlState</a></div><div class="ttdeci">virtual bool controlState(codec_mode_t mode)</div><div class="ttdef"><b>Definition:</b> Driver.h:281</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_aaf041a73009a07b13117c75c1d09f00c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#aaf041a73009a07b13117c75c1d09f00c">audio_driver::AudioDriver::getVolume</a></div><div class="ttdeci">virtual int getVolume()=0</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_ace4e6b6c01cac8e0d08d2e592f9651f2"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#ace4e6b6c01cac8e0d08d2e592f9651f2">audio_driver::AudioDriver::getI2C</a></div><div class="ttdeci">TwoWire * getI2C()</div><div class="ttdoc">Determine the TwoWire object from the I2C config or use Wire.</div><div class="ttdef"><b>Definition:</b> Driver.h:261</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_aed163ec96131f32e2b3316974a2bd9bc"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#aed163ec96131f32e2b3316974a2bd9bc">audio_driver::AudioDriver::p_pins</a></div><div class="ttdeci">DriverPins * p_pins</div><div class="ttdef"><b>Definition:</b> Driver.h:258</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_af1579002eac8e19fe157965f55c7e24e"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#af1579002eac8e19fe157965f55c7e24e">audio_driver::AudioDriver::init</a></div><div class="ttdeci">virtual bool init(codec_config_t codec_cfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:279</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_html_af6fd872d4389b2d098ef7657ee3251ff"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver.html#af6fd872d4389b2d098ef7657ee3251ff">audio_driver::AudioDriver::configInterface</a></div><div class="ttdeci">virtual bool configInterface(codec_mode_t mode, I2SDefinition iface)</div><div class="ttdef"><b>Definition:</b> Driver.h:282</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_lyrat_mini_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html">audio_driver::AudioDriverLyratMiniClass</a></div><div class="ttdoc">Driver API for Lyrat Mini with a ES8311 and a ES7243 codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:1269</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_lyrat_mini_class_html_a1261028d75a47804743db047621c62ac"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a1261028d75a47804743db047621c62ac">audio_driver::AudioDriverLyratMiniClass::end</a></div><div class="ttdeci">bool end(void)</div><div class="ttdef"><b>Definition:</b> Driver.h:1279</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_lyrat_mini_class_html_a3b34dcbd1ff557bb23983bc362b24fdb"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3b34dcbd1ff557bb23983bc362b24fdb">audio_driver::AudioDriverLyratMiniClass::adc</a></div><div class="ttdeci">AudioDriverES7243Class adc</div><div class="ttdef"><b>Definition:</b> Driver.h:1294</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_lyrat_mini_class_html_a3c1eef9acc56cd24d5d29bc64e57944a"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a3c1eef9acc56cd24d5d29bc64e57944a">audio_driver::AudioDriverLyratMiniClass::dac</a></div><div class="ttdeci">AudioDriverES8311Class dac</div><div class="ttdef"><b>Definition:</b> Driver.h:1293</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_lyrat_mini_class_html_a61f1b9f3a7b3cb76ade6f9b7d9ba984b"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a61f1b9f3a7b3cb76ade6f9b7d9ba984b">audio_driver::AudioDriverLyratMiniClass::begin</a></div><div class="ttdeci">bool begin(CodecConfig codecCfg, DriverPins &amp;pins)</div><div class="ttdef"><b>Definition:</b> Driver.h:1271</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_lyrat_mini_class_html_a70628dacff2793c2793f7f30a4b9e994"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a70628dacff2793c2793f7f30a4b9e994">audio_driver::AudioDriverLyratMiniClass::setMute</a></div><div class="ttdeci">bool setMute(bool enable)</div><div class="ttdef"><b>Definition:</b> Driver.h:1285</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_lyrat_mini_class_html_a935ad3a2898c94e433a1da3b948dff72"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#a935ad3a2898c94e433a1da3b948dff72">audio_driver::AudioDriverLyratMiniClass::isInputVolumeSupported</a></div><div class="ttdeci">bool isInputVolumeSupported()</div><div class="ttdef"><b>Definition:</b> Driver.h:1290</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_lyrat_mini_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverLyratMiniClass::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:1287</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_lyrat_mini_class_html_acd5d071057ce19f3718940329d202ef8"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#acd5d071057ce19f3718940329d202ef8">audio_driver::AudioDriverLyratMiniClass::setInputVolume</a></div><div class="ttdeci">bool setInputVolume(int volume)</div><div class="ttdef"><b>Definition:</b> Driver.h:1288</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_lyrat_mini_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverLyratMiniClass::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:1286</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_lyrat_mini_class_html_ad8b76620dd779abcf0428af2dc3b56cd"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_lyrat_mini_class.html#ad8b76620dd779abcf0428af2dc3b56cd">audio_driver::AudioDriverLyratMiniClass::getInputVolume</a></div><div class="ttdeci">int getInputVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:1289</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_t_a_s5805_m_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html">audio_driver::AudioDriverTAS5805MClass</a></div><div class="ttdoc">Driver API for TAS5805M codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:879</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_t_a_s5805_m_class_html_a5117a0a714bc6ffce07a792ca2b5c872"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#a5117a0a714bc6ffce07a792ca2b5c872">audio_driver::AudioDriverTAS5805MClass::deinit</a></div><div class="ttdeci">bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:896</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_t_a_s5805_m_class_html_a52e4f3e14150fab743955aa7fb4a6af6"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#a52e4f3e14150fab743955aa7fb4a6af6">audio_driver::AudioDriverTAS5805MClass::init</a></div><div class="ttdeci">bool init(codec_config_t codec_cfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:893</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_t_a_s5805_m_class_html_aa2a08d0fd7c4e897419766a5a0ebc291"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">audio_driver::AudioDriverTAS5805MClass::setMute</a></div><div class="ttdeci">bool setMute(bool mute)</div><div class="ttdef"><b>Definition:</b> Driver.h:881</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_t_a_s5805_m_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverTAS5805MClass::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:886</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_t_a_s5805_m_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_t_a_s5805_m_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverTAS5805MClass::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:882</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html">audio_driver::AudioDriverWM8960Class</a></div><div class="ttdoc">Driver API for WM8990 codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:904</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a057bd9823253d287868d869ed21ca3ad"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a057bd9823253d287868d869ed21ca3ad">audio_driver::AudioDriverWM8960Class::modeMasterSlave</a></div><div class="ttdeci">mtb_wm8960_mode_t modeMasterSlave(bool is_master)</div><div class="ttdoc">if microcontroller is master then module is slave</div><div class="ttdef"><b>Definition:</b> Driver.h:1072</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a069585b6eb441ee0fd1171342fd3b427"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a069585b6eb441ee0fd1171342fd3b427">audio_driver::AudioDriverWM8960Class::volume_in</a></div><div class="ttdeci">int volume_in</div><div class="ttdef"><b>Definition:</b> Driver.h:972</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a1261028d75a47804743db047621c62ac"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a1261028d75a47804743db047621c62ac">audio_driver::AudioDriverWM8960Class::end</a></div><div class="ttdeci">bool end(void)</div><div class="ttdef"><b>Definition:</b> Driver.h:930</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a3277aaba278bb20fef8a7a59d2c4f562"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3277aaba278bb20fef8a7a59d2c4f562">audio_driver::AudioDriverWM8960Class::setI2CRetryCount</a></div><div class="ttdeci">void setI2CRetryCount(int cnt)</div><div class="ttdoc">Configuration: define retry count (default : 0)</div><div class="ttdef"><b>Definition:</b> Driver.h:961</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a388a9c7791ec686d98284afdc3052a0c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a388a9c7791ec686d98284afdc3052a0c">audio_driver::AudioDriverWM8960Class::setMclkHz</a></div><div class="ttdeci">void setMclkHz(uint32_t hz)</div><div class="ttdoc">Configuration: define master clock frequency (default: 0)</div><div class="ttdef"><b>Definition:</b> Driver.h:967</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a3ac8404aa88c0fbb927d1704059b94c2"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3ac8404aa88c0fbb927d1704059b94c2">audio_driver::AudioDriverWM8960Class::wordLength</a></div><div class="ttdeci">mtb_wm8960_word_length_t wordLength(int bits)</div><div class="ttdef"><b>Definition:</b> Driver.h:1055</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a3dbae4234a4ef6e889c1d780f7aeab68"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3dbae4234a4ef6e889c1d780f7aeab68">audio_driver::AudioDriverWM8960Class::isVolumeSupported</a></div><div class="ttdeci">bool isVolumeSupported()</div><div class="ttdef"><b>Definition:</b> Driver.h:956</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a3f1c8e5721a062a24f7b7d2ef549601b"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a3f1c8e5721a062a24f7b7d2ef549601b">audio_driver::AudioDriverWM8960Class::vs1053_enable_pll</a></div><div class="ttdeci">bool vs1053_enable_pll</div><div class="ttdef"><b>Definition:</b> Driver.h:976</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a54efa0ea60ca2c083bc8ae8b528c60ce"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a54efa0ea60ca2c083bc8ae8b528c60ce">audio_driver::AudioDriverWM8960Class::i2c_retry_count</a></div><div class="ttdeci">int i2c_retry_count</div><div class="ttdef"><b>Definition:</b> Driver.h:974</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a61f1b9f3a7b3cb76ade6f9b7d9ba984b"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a61f1b9f3a7b3cb76ade6f9b7d9ba984b">audio_driver::AudioDriverWM8960Class::begin</a></div><div class="ttdeci">bool begin(CodecConfig codecCfg, DriverPins &amp;pins)</div><div class="ttdef"><b>Definition:</b> Driver.h:906</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a6442182dfc4c54fb16b002b6f15c86e4"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a6442182dfc4c54fb16b002b6f15c86e4">audio_driver::AudioDriverWM8960Class::setConfig</a></div><div class="ttdeci">virtual bool setConfig(CodecConfig codecCfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:935</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a70628dacff2793c2793f7f30a4b9e994"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a70628dacff2793c2793f7f30a4b9e994">audio_driver::AudioDriverWM8960Class::setMute</a></div><div class="ttdeci">bool setMute(bool enable)</div><div class="ttdef"><b>Definition:</b> Driver.h:940</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a739ef5bfe541910d7b6e52b260dedc82"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a739ef5bfe541910d7b6e52b260dedc82">audio_driver::AudioDriverWM8960Class::sampleRate</a></div><div class="ttdeci">mtb_wm8960_adc_dac_sample_rate_t sampleRate(int rate)</div><div class="ttdef"><b>Definition:</b> Driver.h:1027</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a8d6a82ed871881027cf9dffd0c37a0b8"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a8d6a82ed871881027cf9dffd0c37a0b8">audio_driver::AudioDriverWM8960Class::setEnablePLL</a></div><div class="ttdeci">void setEnablePLL(bool active)</div><div class="ttdoc">Configuration: enable/disable PLL (active by default)</div><div class="ttdef"><b>Definition:</b> Driver.h:964</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a935ad3a2898c94e433a1da3b948dff72"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a935ad3a2898c94e433a1da3b948dff72">audio_driver::AudioDriverWM8960Class::isInputVolumeSupported</a></div><div class="ttdeci">bool isInputVolumeSupported()</div><div class="ttdef"><b>Definition:</b> Driver.h:958</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_a9f3163534459bc30dd5e39ad3626199d"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#a9f3163534459bc30dd5e39ad3626199d">audio_driver::AudioDriverWM8960Class::getFeatures</a></div><div class="ttdeci">int getFeatures(CodecConfig cfg)</div><div class="ttdef"><b>Definition:</b> Driver.h:978</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_aa0cc714fc57008a641396f670d385c08"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#aa0cc714fc57008a641396f670d385c08">audio_driver::AudioDriverWM8960Class::dumpRegisters</a></div><div class="ttdeci">void dumpRegisters()</div><div class="ttdef"><b>Definition:</b> Driver.h:969</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverWM8960Class::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:949</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_ab3906c1f4f34d4c23bc441d9f4194807"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ab3906c1f4f34d4c23bc441d9f4194807">audio_driver::AudioDriverWM8960Class::volume_out</a></div><div class="ttdeci">int volume_out</div><div class="ttdef"><b>Definition:</b> Driver.h:973</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_ac338f04bad8799bc975b4942bf1a6cc5"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ac338f04bad8799bc975b4942bf1a6cc5">audio_driver::AudioDriverWM8960Class::configure_clocking</a></div><div class="ttdeci">bool configure_clocking()</div><div class="ttdef"><b>Definition:</b> Driver.h:1011</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_acd5d071057ce19f3718940329d202ef8"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#acd5d071057ce19f3718940329d202ef8">audio_driver::AudioDriverWM8960Class::setInputVolume</a></div><div class="ttdeci">bool setInputVolume(int volume)</div><div class="ttdef"><b>Definition:</b> Driver.h:951</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverWM8960Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:943</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8960_class_html_ad9b0acc96ff1397ffcf5d23829d1d437"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8960_class.html#ad9b0acc96ff1397ffcf5d23829d1d437">audio_driver::AudioDriverWM8960Class::vs1053_mclk_hz</a></div><div class="ttdeci">uint32_t vs1053_mclk_hz</div><div class="ttdef"><b>Definition:</b> Driver.h:975</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html">audio_driver::AudioDriverWM8978Class</a></div><div class="ttdoc">Driver API for the wm8978 codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:1082</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_a016f575b7c0ff5b13cb1b907f66de665"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a016f575b7c0ff5b13cb1b907f66de665">audio_driver::AudioDriverWM8978Class::getVolume</a></div><div class="ttdeci">int getVolume() override</div><div class="ttdef"><b>Definition:</b> Driver.h:1146</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_a1c1fb2fd124e8594d0d7141e4791c445"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a1c1fb2fd124e8594d0d7141e4791c445">audio_driver::AudioDriverWM8978Class::AudioDriverWM8978Class</a></div><div class="ttdeci">AudioDriverWM8978Class()</div><div class="ttdef"><b>Definition:</b> Driver.h:1084</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_a35ee14e345e291f347cb25380989aad9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a35ee14e345e291f347cb25380989aad9">audio_driver::AudioDriverWM8978Class::isInputVolumeSupported</a></div><div class="ttdeci">bool isInputVolumeSupported() override</div><div class="ttdef"><b>Definition:</b> Driver.h:1158</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_a3e7b3b9da454d773e945e4053f6e2b75"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a3e7b3b9da454d773e945e4053f6e2b75">audio_driver::AudioDriverWM8978Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute) override</div><div class="ttdef"><b>Definition:</b> Driver.h:1127</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_a4510f634312ee31f499f25c2a02b8b39"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a4510f634312ee31f499f25c2a02b8b39">audio_driver::AudioDriverWM8978Class::isVolumeSupported</a></div><div class="ttdeci">bool isVolumeSupported() override</div><div class="ttdef"><b>Definition:</b> Driver.h:1156</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_a4abfad10bc5430ad0f4c067ff5a4be1d"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#a4abfad10bc5430ad0f4c067ff5a4be1d">audio_driver::AudioDriverWM8978Class::toI2S</a></div><div class="ttdeci">int toI2S(i2s_format_t fmt)</div><div class="ttdef"><b>Definition:</b> Driver.h:1170</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_ac449de25c72e7a8fbbcbf0bf6a8132ba"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ac449de25c72e7a8fbbcbf0bf6a8132ba">audio_driver::AudioDriverWM8978Class::begin</a></div><div class="ttdeci">bool begin(CodecConfig codecCfg, DriverPins &amp;pins) override</div><div class="ttdef"><b>Definition:</b> Driver.h:1086</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_acacc5a1cde1e90163709690a7fca38a9"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#acacc5a1cde1e90163709690a7fca38a9">audio_driver::AudioDriverWM8978Class::wm8078</a></div><div class="ttdeci">WM8978 wm8078</div><div class="ttdef"><b>Definition:</b> Driver.h:1165</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_ad3455849766196a8ab522b2da63a05d8"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ad3455849766196a8ab522b2da63a05d8">audio_driver::AudioDriverWM8978Class::setInputVolume</a></div><div class="ttdeci">bool setInputVolume(int volume) override</div><div class="ttdef"><b>Definition:</b> Driver.h:1148</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_ad7e6263e14828b1df9e1bcea4f9fc67c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ad7e6263e14828b1df9e1bcea4f9fc67c">audio_driver::AudioDriverWM8978Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume) override</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:1138</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_ae3d8911013b1bab653ee2d819ce44bb3"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#ae3d8911013b1bab653ee2d819ce44bb3">audio_driver::AudioDriverWM8978Class::end</a></div><div class="ttdeci">bool end() override</div><div class="ttdef"><b>Definition:</b> Driver.h:1121</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_aed48ca0bcd2162fd4fd495873e2631f5"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#aed48ca0bcd2162fd4fd495873e2631f5">audio_driver::AudioDriverWM8978Class::volume</a></div><div class="ttdeci">int volume</div><div class="ttdef"><b>Definition:</b> Driver.h:1166</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_af94dae77a5112ae6e502daf9a59b29a1"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#af94dae77a5112ae6e502daf9a59b29a1">audio_driver::AudioDriverWM8978Class::driver</a></div><div class="ttdeci">WM8978 &amp; driver()</div><div class="ttdef"><b>Definition:</b> Driver.h:1160</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8978_class_html_afaffd514793abc1a9dcdc3236bfd3f93"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8978_class.html#afaffd514793abc1a9dcdc3236bfd3f93">audio_driver::AudioDriverWM8978Class::toBits</a></div><div class="ttdeci">int toBits(sample_bits_t bits)</div><div class="ttdef"><b>Definition:</b> Driver.h:1185</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8994_class_html"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8994_class.html">audio_driver::AudioDriverWM8994Class</a></div><div class="ttdoc">Driver API for the wm8994 codec chip.</div><div class="ttdef"><b>Definition:</b> Driver.h:1205</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8994_class_html_a2082348800b00b641ee937bc99c58e2a"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a2082348800b00b641ee937bc99c58e2a">audio_driver::AudioDriverWM8994Class::begin</a></div><div class="ttdeci">virtual bool begin(CodecConfig codecCfg, DriverPins &amp;pins)</div><div class="ttdef"><b>Definition:</b> Driver.h:1213</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8994_class_html_a4de4414c756798e6d4b5008c88a499f4"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a4de4414c756798e6d4b5008c88a499f4">audio_driver::AudioDriverWM8994Class::deviceAddr</a></div><div class="ttdeci">uint16_t deviceAddr</div><div class="ttdef"><b>Definition:</b> Driver.h:1239</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8994_class_html_a5117a0a714bc6ffce07a792ca2b5c872"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a5117a0a714bc6ffce07a792ca2b5c872">audio_driver::AudioDriverWM8994Class::deinit</a></div><div class="ttdeci">bool deinit()</div><div class="ttdef"><b>Definition:</b> Driver.h:1242</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8994_class_html_a85571b4bfeae93650d81dfc0bbe2c781"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#a85571b4bfeae93650d81dfc0bbe2c781">audio_driver::AudioDriverWM8994Class::AudioDriverWM8994Class</a></div><div class="ttdeci">AudioDriverWM8994Class(uint16_t deviceAddr=0x1A)</div><div class="ttdef"><b>Definition:</b> Driver.h:1207</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8994_class_html_aa2a08d0fd7c4e897419766a5a0ebc291"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aa2a08d0fd7c4e897419766a5a0ebc291">audio_driver::AudioDriverWM8994Class::setMute</a></div><div class="ttdeci">bool setMute(bool mute)</div><div class="ttdef"><b>Definition:</b> Driver.h:1226</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8994_class_html_aa77bc0dbb16edbab31209efca6d609ac"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aa77bc0dbb16edbab31209efca6d609ac">audio_driver::AudioDriverWM8994Class::setI2CAddress</a></div><div class="ttdeci">void setI2CAddress(uint16_t adr)</div><div class="ttdef"><b>Definition:</b> Driver.h:1211</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8994_class_html_aac9746ddc550ec176b0957affafbdbe7"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aac9746ddc550ec176b0957affafbdbe7">audio_driver::AudioDriverWM8994Class::getVolume</a></div><div class="ttdeci">int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:1236</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8994_class_html_ad7d51b9e21a345d836cb4cfe2df2152c"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#ad7d51b9e21a345d836cb4cfe2df2152c">audio_driver::AudioDriverWM8994Class::setVolume</a></div><div class="ttdeci">bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:1231</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8994_class_html_aed48ca0bcd2162fd4fd495873e2631f5"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#aed48ca0bcd2162fd4fd495873e2631f5">audio_driver::AudioDriverWM8994Class::volume</a></div><div class="ttdeci">int volume</div><div class="ttdef"><b>Definition:</b> Driver.h:1240</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_audio_driver_w_m8994_class_html_af4d0eb0d80056f9cdfc33796c83fd13f"><div class="ttname"><a href="classaudio__driver_1_1_audio_driver_w_m8994_class.html#af4d0eb0d80056f9cdfc33796c83fd13f">audio_driver::AudioDriverWM8994Class::getOutput</a></div><div class="ttdeci">uint16_t getOutput(output_device_t output_device)</div><div class="ttdef"><b>Definition:</b> Driver.h:1249</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_codec_config_html"><div class="ttname"><a href="classaudio__driver_1_1_codec_config.html">audio_driver::CodecConfig</a></div><div class="ttdoc">I2S configuration and definition of input and output with default values.</div><div class="ttdef"><b>Definition:</b> Driver.h:36</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_codec_config_html_a0eced3855f21d967d42b4c399338d3bf"><div class="ttname"><a href="classaudio__driver_1_1_codec_config.html#a0eced3855f21d967d42b4c399338d3bf">audio_driver::CodecConfig::CodecConfig</a></div><div class="ttdeci">CodecConfig()</div><div class="ttdoc">setup default values</div><div class="ttdef"><b>Definition:</b> Driver.h:39</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_codec_config_html_a2cf0779e606be31b752e7cec8c184a9e"><div class="ttname"><a href="classaudio__driver_1_1_codec_config.html#a2cf0779e606be31b752e7cec8c184a9e">audio_driver::CodecConfig::setBitsNumeric</a></div><div class="ttdeci">bool setBitsNumeric(int bits)</div><div class="ttdoc">Sets the bits per sample with a numeric value.</div><div class="ttdef"><b>Definition:</b> Driver.h:74</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_codec_config_html_a3c32c7aaa80dc2060c20dfcf11ba7204"><div class="ttname"><a href="classaudio__driver_1_1_codec_config.html#a3c32c7aaa80dc2060c20dfcf11ba7204">audio_driver::CodecConfig::setChannelsNumeric</a></div><div class="ttdeci">bool setChannelsNumeric(int channels)</div><div class="ttdoc">Defines the number of channels.</div><div class="ttdef"><b>Definition:</b> Driver.h:110</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_codec_config_html_a5a8e72d47263001aff56c9f4aa976fa4"><div class="ttname"><a href="classaudio__driver_1_1_codec_config.html#a5a8e72d47263001aff56c9f4aa976fa4">audio_driver::CodecConfig::getRateNumeric</a></div><div class="ttdeci">int getRateNumeric()</div><div class="ttdoc">Get the sample rate as number.</div><div class="ttdef"><b>Definition:</b> Driver.h:96</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_codec_config_html_a8fa9926c8f49782f025aa24180d4ca33"><div class="ttname"><a href="classaudio__driver_1_1_codec_config.html#a8fa9926c8f49782f025aa24180d4ca33">audio_driver::CodecConfig::get_mode</a></div><div class="ttdeci">codec_mode_t get_mode()</div><div class="ttdoc">Determines the codec_mode_t dynamically based on the input and output.</div><div class="ttdef"><b>Definition:</b> Driver.h:151</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_codec_config_html_ab1fb25acae6f8d20d0fd2243fdf731ab"><div class="ttname"><a href="classaudio__driver_1_1_codec_config.html#ab1fb25acae6f8d20d0fd2243fdf731ab">audio_driver::CodecConfig::getChannelsNumeric</a></div><div class="ttdeci">int getChannelsNumeric()</div><div class="ttdoc">Returns the number of channels as number.</div><div class="ttdef"><b>Definition:</b> Driver.h:107</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_codec_config_html_ac585b3449d271276f8b679e8ab01b2ec"><div class="ttname"><a href="classaudio__driver_1_1_codec_config.html#ac585b3449d271276f8b679e8ab01b2ec">audio_driver::CodecConfig::sd_active</a></div><div class="ttdeci">bool sd_active</div><div class="ttdef"><b>Definition:</b> Driver.h:179</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_codec_config_html_af79a2494e2c27af3418daf7ee490c413"><div class="ttname"><a href="classaudio__driver_1_1_codec_config.html#af79a2494e2c27af3418daf7ee490c413">audio_driver::CodecConfig::equalsExRate</a></div><div class="ttdeci">bool equalsExRate(CodecConfig alt)</div><div class="ttdoc">Compare all attributes but ignore sample rate.</div><div class="ttdef"><b>Definition:</b> Driver.h:51</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_codec_config_html_af946880eb3f7403e06e3d1646acdad27"><div class="ttname"><a href="classaudio__driver_1_1_codec_config.html#af946880eb3f7403e06e3d1646acdad27">audio_driver::CodecConfig::setRateNumeric</a></div><div class="ttdeci">int setRateNumeric(int requestedRate)</div><div class="ttdoc">Sets the sample rate as number: returns the effectively set rate.</div><div class="ttdef"><b>Definition:</b> Driver.h:128</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_codec_config_html_afb4dc267068aaa494327923fecec6b41"><div class="ttname"><a href="classaudio__driver_1_1_codec_config.html#afb4dc267068aaa494327923fecec6b41">audio_driver::CodecConfig::getBitsNumeric</a></div><div class="ttdeci">int getBitsNumeric()</div><div class="ttdoc">Returns bits per sample as number.</div><div class="ttdef"><b>Definition:</b> Driver.h:59</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_driver_pins_html"><div class="ttname"><a href="classaudio__driver_1_1_driver_pins.html">audio_driver::DriverPins</a></div><div class="ttdoc">All pins for i2s, spi, i2c and other pins.</div><div class="ttdef"><b>Definition:</b> DriverPins.h:236</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_driver_pins_html_a052842a7d29e1b90185c1d57fc16f5d2"><div class="ttname"><a href="classaudio__driver_1_1_driver_pins.html#a052842a7d29e1b90185c1d57fc16f5d2">audio_driver::DriverPins::getI2CPins</a></div><div class="ttdeci">audio_driver_local::Optional&lt; PinsI2C &gt; getI2CPins(PinFunction function)</div><div class="ttdoc">Finds the I2C pin info with the help of the function.</div><div class="ttdef"><b>Definition:</b> DriverPins.h:316</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_driver_pins_html_a1bec8cca54681dc1e21f9a5281642dc7"><div class="ttname"><a href="classaudio__driver_1_1_driver_pins.html#a1bec8cca54681dc1e21f9a5281642dc7">audio_driver::DriverPins::getPinID</a></div><div class="ttdeci">GpioPin getPinID(PinFunction function, int pos=0)</div><div class="ttdef"><b>Definition:</b> DriverPins.h:309</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_driver_pins_html_a50f45551c10ca30a0bc7f447e70188b1"><div class="ttname"><a href="classaudio__driver_1_1_driver_pins.html#a50f45551c10ca30a0bc7f447e70188b1">audio_driver::DriverPins::begin</a></div><div class="ttdeci">virtual bool begin()</div><div class="ttdoc">Sets up all pins e.g. by calling pinMode()</div><div class="ttdef"><b>Definition:</b> DriverPins.h:345</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_driver_pins_html_a8dbb11da0473a677756920d373d2068f"><div class="ttname"><a href="classaudio__driver_1_1_driver_pins.html#a8dbb11da0473a677756920d373d2068f">audio_driver::DriverPins::getSPIPins</a></div><div class="ttdeci">audio_driver_local::Optional&lt; PinsSPI &gt; getSPIPins(PinFunction function)</div><div class="ttdoc">Finds the SPI pin info with the help of the function.</div><div class="ttdef"><b>Definition:</b> DriverPins.h:323</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_driver_pins_html_ac657931b192113cc4f0dfa5854dd2f84"><div class="ttname"><a href="classaudio__driver_1_1_driver_pins.html#ac657931b192113cc4f0dfa5854dd2f84">audio_driver::DriverPins::setSPIActiveForSD</a></div><div class="ttdeci">void setSPIActiveForSD(bool active)</div><div class="ttdoc">Defines if SPI for SD should be started (by default true)</div><div class="ttdef"><b>Definition:</b> DriverPins.h:388</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_no_driver_class_html"><div class="ttname"><a href="classaudio__driver_1_1_no_driver_class.html">audio_driver::NoDriverClass</a></div><div class="ttdoc">Dummy Driver which does nothing.</div><div class="ttdef"><b>Definition:</b> Driver.h:302</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_no_driver_class_html_a02060cfd35162a9112de61ebc3d5b974"><div class="ttname"><a href="classaudio__driver_1_1_no_driver_class.html#a02060cfd35162a9112de61ebc3d5b974">audio_driver::NoDriverClass::isInputVolumeSupported</a></div><div class="ttdeci">virtual bool isInputVolumeSupported()</div><div class="ttdef"><b>Definition:</b> Driver.h:317</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_no_driver_class_html_a063cb6038676fcc58f5a7cbc93ef27f1"><div class="ttname"><a href="classaudio__driver_1_1_no_driver_class.html#a063cb6038676fcc58f5a7cbc93ef27f1">audio_driver::NoDriverClass::end</a></div><div class="ttdeci">virtual bool end(void)</div><div class="ttdef"><b>Definition:</b> Driver.h:309</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_no_driver_class_html_a11bf855250acaa1afbe0b8251660800d"><div class="ttname"><a href="classaudio__driver_1_1_no_driver_class.html#a11bf855250acaa1afbe0b8251660800d">audio_driver::NoDriverClass::setInputVolume</a></div><div class="ttdeci">virtual bool setInputVolume(int volume)</div><div class="ttdef"><b>Definition:</b> Driver.h:313</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_no_driver_class_html_a2082348800b00b641ee937bc99c58e2a"><div class="ttname"><a href="classaudio__driver_1_1_no_driver_class.html#a2082348800b00b641ee937bc99c58e2a">audio_driver::NoDriverClass::begin</a></div><div class="ttdeci">virtual bool begin(CodecConfig codecCfg, DriverPins &amp;pins)</div><div class="ttdef"><b>Definition:</b> Driver.h:304</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_no_driver_class_html_a22d2adeb316a5705b57114d4a5761017"><div class="ttname"><a href="classaudio__driver_1_1_no_driver_class.html#a22d2adeb316a5705b57114d4a5761017">audio_driver::NoDriverClass::isVolumeSupported</a></div><div class="ttdeci">virtual bool isVolumeSupported()</div><div class="ttdef"><b>Definition:</b> Driver.h:314</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_no_driver_class_html_a2d9800f7ac8e11f28829d83068fb1028"><div class="ttname"><a href="classaudio__driver_1_1_no_driver_class.html#a2d9800f7ac8e11f28829d83068fb1028">audio_driver::NoDriverClass::getVolume</a></div><div class="ttdeci">virtual int getVolume()</div><div class="ttdef"><b>Definition:</b> Driver.h:312</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_no_driver_class_html_acdfff622d0b4f02de1468ae00328db63"><div class="ttname"><a href="classaudio__driver_1_1_no_driver_class.html#acdfff622d0b4f02de1468ae00328db63">audio_driver::NoDriverClass::setMute</a></div><div class="ttdeci">virtual bool setMute(bool enable)</div><div class="ttdef"><b>Definition:</b> Driver.h:310</div></div>
<div class="ttc" id="aclassaudio__driver_1_1_no_driver_class_html_aef034748ed271241848a3c877a39426e"><div class="ttname"><a href="classaudio__driver_1_1_no_driver_class.html#aef034748ed271241848a3c877a39426e">audio_driver::NoDriverClass::setVolume</a></div><div class="ttdeci">virtual bool setVolume(int volume)</div><div class="ttdoc">Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.</div><div class="ttdef"><b>Definition:</b> Driver.h:311</div></div>
<div class="ttc" id="aetc_8h_html_a5bb885982ff66a2e0a0a45a8ee9c35e2"><div class="ttname"><a href="etc_8h.html#a5bb885982ff66a2e0a0a45a8ee9c35e2">HIGH</a></div><div class="ttdeci">#define HIGH</div><div class="ttdef"><b>Definition:</b> etc.h:7</div></div>
<div class="ttc" id="aetc_8h_html_ab074fe18b447a055b6dbcd5f9a484db5"><div class="ttname"><a href="etc_8h.html#ab074fe18b447a055b6dbcd5f9a484db5">delay</a></div><div class="ttdeci">void delay(unsigned long)</div></div>
<div class="ttc" id="aetc_8h_html_ab811d8c6ff3a505312d3276590444289"><div class="ttname"><a href="etc_8h.html#ab811d8c6ff3a505312d3276590444289">LOW</a></div><div class="ttdeci">#define LOW</div><div class="ttdef"><b>Definition:</b> etc.h:10</div></div>
<div class="ttc" id="aetc_8h_html_afb6322a0aff6851765ab32bfaa5080d6"><div class="ttname"><a href="etc_8h.html#afb6322a0aff6851765ab32bfaa5080d6">digitalWrite</a></div><div class="ttdeci">void digitalWrite(int, int)</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga0cd510e086f73322b9a751a00eee2c1e"><div class="ttname"><a href="group__audio__driver.html#ga0cd510e086f73322b9a751a00eee2c1e">audio_driver::AudioDriverES8311</a></div><div class="ttdeci">static AudioDriverES8311Class AudioDriverES8311</div><div class="ttdef"><b>Definition:</b> Driver.h:1311</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga0d7c21e6e7b5d9dd9e5937c57c60fb8f"><div class="ttname"><a href="group__audio__driver.html#ga0d7c21e6e7b5d9dd9e5937c57c60fb8f">audio_driver::AudioDriverWM8994</a></div><div class="ttdeci">static AudioDriverWM8994Class AudioDriverWM8994</div><div class="ttdef"><b>Definition:</b> Driver.h:1321</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga3c281a9dabe9c42b609f386a515d7082"><div class="ttname"><a href="group__audio__driver.html#ga3c281a9dabe9c42b609f386a515d7082">audio_driver::AudioDriverLyratMini</a></div><div class="ttdeci">static AudioDriverLyratMiniClass AudioDriverLyratMini</div><div class="ttdef"><b>Definition:</b> Driver.h:1323</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga3fee80a3a7d33b4cd0af36720e919be4"><div class="ttname"><a href="group__audio__driver.html#ga3fee80a3a7d33b4cd0af36720e919be4">audio_driver::NoDriver</a></div><div class="ttdeci">static NoDriverClass NoDriver</div><div class="ttdef"><b>Definition:</b> Driver.h:1325</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga4c214e0234a9999990e57646e330b6ac"><div class="ttname"><a href="group__audio__driver.html#ga4c214e0234a9999990e57646e330b6ac">audio_driver::AudioDriverES7210</a></div><div class="ttdeci">static AudioDriverES7210Class AudioDriverES7210</div><div class="ttdef"><b>Definition:</b> Driver.h:1303</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga5a1114aae6283ef58238ffbd5afd140e"><div class="ttname"><a href="group__audio__driver.html#ga5a1114aae6283ef58238ffbd5afd140e">audio_driver::AudioDriverES8156</a></div><div class="ttdeci">static AudioDriverES8156Class AudioDriverES8156</div><div class="ttdef"><b>Definition:</b> Driver.h:1309</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga64fcfa236c4e6cf9b438698efcac5fa4"><div class="ttname"><a href="group__audio__driver.html#ga64fcfa236c4e6cf9b438698efcac5fa4">audio_driver::AudioDriverES7243</a></div><div class="ttdeci">static AudioDriverES7243Class AudioDriverES7243</div><div class="ttdef"><b>Definition:</b> Driver.h:1305</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga6e512f44cc6db0994d6b1617abcc93b0"><div class="ttname"><a href="group__audio__driver.html#ga6e512f44cc6db0994d6b1617abcc93b0">audio_driver::AudioDriverAC101</a></div><div class="ttdeci">static AudioDriverAC101Class AudioDriverAC101</div><div class="ttdef"><b>Definition:</b> Driver.h:1299</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga83d13359511c6ee2c627b33b94588ad5"><div class="ttname"><a href="group__audio__driver.html#ga83d13359511c6ee2c627b33b94588ad5">audio_driver::AudioDriverCS42448</a></div><div class="ttdeci">static AudioDriverCS42448Class AudioDriverCS42448</div><div class="ttdef"><b>Definition:</b> Driver.h:1329</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga9144c83baaa7ebeaaecb236f9e21d264"><div class="ttname"><a href="group__audio__driver.html#ga9144c83baaa7ebeaaecb236f9e21d264">output_device_t</a></div><div class="ttdeci">output_device_t</div><div class="ttdoc">Select individual dac for dac output. If the device has only one DAC this might provide the functiona...</div><div class="ttdef"><b>Definition:</b> Common.h:51</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga9523811ed2db337675698f6f59f4316c"><div class="ttname"><a href="group__audio__driver.html#ga9523811ed2db337675698f6f59f4316c">audio_driver::AudioDriverES7243e</a></div><div class="ttdeci">static AudioDriverES7243eClass AudioDriverES7243e</div><div class="ttdef"><b>Definition:</b> Driver.h:1307</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga9752ab43ee1dc1a25230ddfbd0916c15"><div class="ttname"><a href="group__audio__driver.html#ga9752ab43ee1dc1a25230ddfbd0916c15">audio_driver::AudioDriverCS43l22</a></div><div class="ttdeci">static AudioDriverCS43l22Class AudioDriverCS43l22</div><div class="ttdef"><b>Definition:</b> Driver.h:1301</div></div>
<div class="ttc" id="agroup__audio__driver_html_ga9edaa629f0334ef75e1666c847bcb3c3"><div class="ttname"><a href="group__audio__driver.html#ga9edaa629f0334ef75e1666c847bcb3c3">audio_driver::AudioDriverWM8960</a></div><div class="ttdeci">static AudioDriverWM8960Class AudioDriverWM8960</div><div class="ttdef"><b>Definition:</b> Driver.h:1317</div></div>
<div class="ttc" id="agroup__audio__driver_html_gad404af509b8a5ae73c689d6faa3d54df"><div class="ttname"><a href="group__audio__driver.html#gad404af509b8a5ae73c689d6faa3d54df">audio_driver::AudioDriverES8388</a></div><div class="ttdeci">static AudioDriverES8388Class AudioDriverES8388</div><div class="ttdef"><b>Definition:</b> Driver.h:1315</div></div>
<div class="ttc" id="agroup__audio__driver_html_gae422be678e9a5cc45b187b167f40ac43"><div class="ttname"><a href="group__audio__driver.html#gae422be678e9a5cc45b187b167f40ac43">audio_driver::AudioDriverWM8978</a></div><div class="ttdeci">static AudioDriverWM8978Class AudioDriverWM8978</div><div class="ttdef"><b>Definition:</b> Driver.h:1319</div></div>
<div class="ttc" id="agroup__audio__driver_html_gaeaa8dbd90738b9ed5eb727ddaf322bd7"><div class="ttname"><a href="group__audio__driver.html#gaeaa8dbd90738b9ed5eb727ddaf322bd7">audio_driver::AudioDriverES8374</a></div><div class="ttdeci">static AudioDriverES8374Class AudioDriverES8374</div><div class="ttdef"><b>Definition:</b> Driver.h:1313</div></div>
<div class="ttc" id="agroup__audio__driver_html_gaf75ddf37a3c0e9318d1b22be33ea1059"><div class="ttname"><a href="group__audio__driver.html#gaf75ddf37a3c0e9318d1b22be33ea1059">audio_driver::AudioDriverAD1938</a></div><div class="ttdeci">static AudioDriverAD1938Class AudioDriverAD1938</div><div class="ttdef"><b>Definition:</b> Driver.h:1327</div></div>
<div class="ttc" id="agroup__enumerations_html_ga69c4b817c522e31496b9b6b6cda2926d"><div class="ttname"><a href="group__enumerations.html#ga69c4b817c522e31496b9b6b6cda2926d">sample_bits_t</a></div><div class="ttdeci">sample_bits_t</div><div class="ttdoc">Select I2S interface number of bits per sample.</div><div class="ttdef"><b>Definition:</b> Common.h:96</div></div>
<div class="ttc" id="agroup__enumerations_html_ga767db1c20919e0b4bcbf95cf741042f8"><div class="ttname"><a href="group__enumerations.html#ga767db1c20919e0b4bcbf95cf741042f8">codec_mode_t</a></div><div class="ttdeci">codec_mode_t</div><div class="ttdoc">Select media hal codec mode.</div><div class="ttdef"><b>Definition:</b> Common.h:143</div></div>
<div class="ttc" id="agroup__enumerations_html_ga9455c9aa894b64d5d3997a038141991b"><div class="ttname"><a href="group__enumerations.html#ga9455c9aa894b64d5d3997a038141991b">samplerate_t</a></div><div class="ttdeci">samplerate_t</div><div class="ttdoc">Select I2S interface samples per second.</div><div class="ttdef"><b>Definition:</b> Common.h:74</div></div>
<div class="ttc" id="agroup__enumerations_html_gaac50a1392dd0aa905500c755148c556b"><div class="ttname"><a href="group__enumerations.html#gaac50a1392dd0aa905500c755148c556b">channels_t</a></div><div class="ttdeci">channels_t</div><div class="ttdoc">Select the number of channels.</div><div class="ttdef"><b>Definition:</b> Common.h:158</div></div>
<div class="ttc" id="agroup__enumerations_html_gac5dc971b3e58c17abd8b5b946b759fb1"><div class="ttname"><a href="group__enumerations.html#gac5dc971b3e58c17abd8b5b946b759fb1">es_mic_gain_t</a></div><div class="ttdeci">es_mic_gain_t</div><div class="ttdoc">Microphone Gain.</div><div class="ttdef"><b>Definition:</b> Common.h:124</div></div>
<div class="ttc" id="agroup__enumerations_html_gad4b0ae616e0ce2bdb666f8e75ab686b2"><div class="ttname"><a href="group__enumerations.html#gad4b0ae616e0ce2bdb666f8e75ab686b2">i2s_format_t</a></div><div class="ttdeci">i2s_format_t</div><div class="ttdoc">Select I2S interface format for audio codec chip.</div><div class="ttdef"><b>Definition:</b> Common.h:111</div></div>
<div class="ttc" id="anamespaceaudio__driver_html"><div class="ttname"><a href="namespaceaudio__driver.html">audio_driver</a></div><div class="ttdef"><b>Definition:</b> AudioBoard.h:5</div></div>
<div class="ttc" id="anamespaceaudio__driver_html_a4c343c4d8992a509dce6cff41726322a"><div class="ttname"><a href="namespaceaudio__driver.html#a4c343c4d8992a509dce6cff41726322a">audio_driver::GpioPin</a></div><div class="ttdeci">int16_t GpioPin</div><div class="ttdef"><b>Definition:</b> DriverPins.h:13</div></div>
<div class="ttc" id="anamespaceaudio__driver_html_a57ed9a91c0a184e4d8669f70d4cfb953"><div class="ttname"><a href="namespaceaudio__driver.html#a57ed9a91c0a184e4d8669f70d4cfb953">audio_driver::rate_code</a></div><div class="ttdeci">const samplerate_t rate_code[14]</div><div class="ttdef"><b>Definition:</b> Driver.h:25</div></div>
<div class="ttc" id="anamespaceaudio__driver_html_aee6eec1204925f0dfc2228bda0533d2f"><div class="ttname"><a href="namespaceaudio__driver.html#aee6eec1204925f0dfc2228bda0533d2f">audio_driver::rate_num</a></div><div class="ttdeci">const int rate_num[14]</div><div class="ttdef"><b>Definition:</b> Driver.h:23</div></div>
<div class="ttc" id="anamespaceaudio__driver_html_ga6b03ddbf1e0f5abd0e46e02555850aafa0301a754913dd38062217d6b511a1696"><div class="ttname"><a href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafa0301a754913dd38062217d6b511a1696">audio_driver::PinFunction::MCLK_SOURCE</a></div><div class="ttdeci">@ MCLK_SOURCE</div></div>
<div class="ttc" id="anamespaceaudio__driver_html_ga6b03ddbf1e0f5abd0e46e02555850aafa06f6a489209115c5cef3f45036aad3ec"><div class="ttname"><a href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafa06f6a489209115c5cef3f45036aad3ec">audio_driver::PinFunction::PA</a></div><div class="ttdeci">@ PA</div></div>
<div class="ttc" id="anamespaceaudio__driver_html_ga6b03ddbf1e0f5abd0e46e02555850aafa472015a17943a0dd74293f32ce088542"><div class="ttname"><a href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafa472015a17943a0dd74293f32ce088542">audio_driver::PinFunction::CODEC</a></div><div class="ttdeci">@ CODEC</div></div>
<div class="ttc" id="anamespaceaudio__driver_html_ga6b03ddbf1e0f5abd0e46e02555850aafab5859d8721cfdc0312b2838b9c985bc1"><div class="ttname"><a href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafab5859d8721cfdc0312b2838b9c985bc1">audio_driver::PinFunction::RESET</a></div><div class="ttdeci">@ RESET</div></div>
<div class="ttc" id="anamespaceaudio__driver_html_ga6b03ddbf1e0f5abd0e46e02555850aafab6e3c1cdb5c43961a2e081ef2564ba2e"><div class="ttname"><a href="namespaceaudio__driver.html#ga6b03ddbf1e0f5abd0e46e02555850aafab6e3c1cdb5c43961a2e081ef2564ba2e">audio_driver::PinFunction::LATCH</a></div><div class="ttdeci">@ LATCH</div></div>
<div class="ttc" id="astruct_i2_s_definition_html"><div class="ttname"><a href="struct_i2_s_definition.html">I2SDefinition</a></div><div class="ttdoc">I2s interface configuration for audio codec chip.</div><div class="ttdef"><b>Definition:</b> Common.h:168</div></div>
<div class="ttc" id="astruct_i2_s_definition_html_a0a84595d973f46fb7cd70746e8d87cbb"><div class="ttname"><a href="struct_i2_s_definition.html#a0a84595d973f46fb7cd70746e8d87cbb">I2SDefinition::fmt</a></div><div class="ttdeci">i2s_format_t fmt</div><div class="ttdef"><b>Definition:</b> Common.h:173</div></div>
<div class="ttc" id="astruct_i2_s_definition_html_a2ae50aca3292f8f72fa1afe1269bb8c4"><div class="ttname"><a href="struct_i2_s_definition.html#a2ae50aca3292f8f72fa1afe1269bb8c4">I2SDefinition::rate</a></div><div class="ttdeci">samplerate_t rate</div><div class="ttdef"><b>Definition:</b> Common.h:175</div></div>
<div class="ttc" id="astruct_i2_s_definition_html_a58b259b6331a0efa228683b513190b4d"><div class="ttname"><a href="struct_i2_s_definition.html#a58b259b6331a0efa228683b513190b4d">I2SDefinition::mode</a></div><div class="ttdeci">i2s_master_slave_t mode</div><div class="ttdef"><b>Definition:</b> Common.h:171</div></div>
<div class="ttc" id="astruct_i2_s_definition_html_ab5a0ee7843e4a3097806c3a4344944cd"><div class="ttname"><a href="struct_i2_s_definition.html#ab5a0ee7843e4a3097806c3a4344944cd">I2SDefinition::channels</a></div><div class="ttdeci">channels_t channels</div><div class="ttdef"><b>Definition:</b> Common.h:179</div></div>
<div class="ttc" id="astruct_i2_s_definition_html_adeb4d7cae3090eef02034eec5efcb122"><div class="ttname"><a href="struct_i2_s_definition.html#adeb4d7cae3090eef02034eec5efcb122">I2SDefinition::bits</a></div><div class="ttdeci">sample_bits_t bits</div><div class="ttdef"><b>Definition:</b> Common.h:177</div></div>
<div class="ttc" id="astructcodec__config__t_html"><div class="ttname"><a href="structcodec__config__t.html">codec_config_t</a></div><div class="ttdoc">Configure media hal for initialization of audio codec chip.</div><div class="ttdef"><b>Definition:</b> Common.h:185</div></div>
<div class="ttc" id="astructcodec__config__t_html_a53991a860287c34f4e412af745d4bb66"><div class="ttname"><a href="structcodec__config__t.html#a53991a860287c34f4e412af745d4bb66">codec_config_t::output_device</a></div><div class="ttdeci">output_device_t output_device</div><div class="ttdef"><b>Definition:</b> Common.h:187</div></div>
<div class="ttc" id="astructcodec__config__t_html_aaf711847489250fbc86db83f79b01b2b"><div class="ttname"><a href="structcodec__config__t.html#aaf711847489250fbc86db83f79b01b2b">codec_config_t::i2s</a></div><div class="ttdeci">I2SDefinition i2s</div><div class="ttdef"><b>Definition:</b> Common.h:188</div></div>
<div class="ttc" id="astructcodec__config__t_html_af1127704c2bde9a89bb0b092bfb13746"><div class="ttname"><a href="structcodec__config__t.html#af1127704c2bde9a89bb0b092bfb13746">codec_config_t::input_device</a></div><div class="ttdeci">input_device_t input_device</div><div class="ttdef"><b>Definition:</b> Common.h:186</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>
